主要表
projects:项目表
metrics:指标表 比如id为3的是代码行数 id为20是复杂度
project_measures : 项目与指标表的关系表 一个项目具体指标的值存储在此表
snapshots: 快照表,每次执行一次,都会在快照表插入一条记录
创建视图 v_project_measures
SELECT
projdesc.component_uuid,
projdesc.metric_id,
(
case
when projdesc.metric_id = 33
THEN '测试覆盖率'
when projdesc.metric_id = 52
THEN '重复率'
when projdesc.metric_id = 72
THEN '异味'
when projdesc.metric_id = 74
then 'bugs'
when projdesc.metric_id = 75
then '新bugs'
when projdesc.metric_id = 76
then '漏洞'
when projdesc.metric_id = 77
then '新漏洞'
end) as 'type',
MAX(projdesc.id) AS id
FROM snapshots snap
LEFT JOIN project_measures projdesc ON projdesc.component_uuid=snap.component_uuid
WHERE -- projdesc.component_uuid ="AWv04KutgA4KwXwXcb5N" AND projdesc.metric_id IN(74,76,72,33,52,75,77,98) and
snap.islast=1
GROUP BY projdesc.component_uuid,projdesc.metric_id
ORDER BY projdesc.id DESC,snap.id DESC
拉取报表
select
projdesc.component_uuid,
p.`name`,
sum(case when projdesc.metric_id = 74 then projdesc.value else 0 end) as 'bugs',
sum(case when projdesc.metric_id = 76 then projdesc.value else 0 end) as '漏洞',
sum(case when projdesc.metric_id = 72 then projdesc.value else 0 end) as '异味',
sum(case when projdesc.metric_id = 33 then projdesc.value else 0 end) as '测试覆盖率',
sum(case when projdesc.metric_id = 52 then projdesc.value else 0 end) as '重复率',
sum(case when projdesc.metric_id = 75 then projdesc.variation_value_1 else 0 end) as '新bugs',
sum(case when projdesc.metric_id = 77 then projdesc.variation_value_1 else 0 end) as '新漏洞',
sum(case when projdesc.metric_id = 73 then projdesc.variation_value_1 else 0 end) as '新异味'
from
project_measures projdesc,projects p
where
projdesc.component_uuid=p.project_uuid
and p.scope='PRJ'
and projdesc.id in(
select id from v_project_measures vpm
)
group by projdesc.component_uuid,p.`name`;