主要表
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`;