所以我觉得我做得很好。我做了5张桌子。 tblComplexity,tblCoupling,tblLinesOfCode,tblMaintainIndex和tblProjects
tblProjects有2列[ID,项目名称]
其他4个表都有3列第3列是每个列不同的列,正如您根据名称猜测的那样
其他4个表[ID *,RunID,(复杂性,耦合,行,MI)]
其他4个表中只有数字
我为tblProjects.ID和(4tables).RunID在4个表中的每个表上放了多对一的关系。
然后我对qfComplexity
进行了查询SELECT
tblProjects.ProjectName,
Round(Avg(tblComplexity.CyclomaticComplexity)+StDevP(tblComplexity.CyclomaticComplexity),2) AS MaxDeviation,
Max(tblComplexity.CyclomaticComplexity) AS MaxOfCyclomaticComplexity,
Min(tblComplexity.CyclomaticComplexity) AS MinOfCyclomaticComplexity,
Round(Avg(tblComplexity.CyclomaticComplexity)-StDevP(tblComplexity.CyclomaticComplexity),2) AS MinDeviation
FROM
tblProjects
INNER JOIN
tblComplexity
ON tblProjects.ID = tblComplexity.RunID
GROUP BY
tblProjects.ProjectName;
所有这4个查询都给了我之后的数字(我以前在一张excel表中都有这个。)
我最终的目标是将此数据库与excel连接,以便我可以拥有我的图表。问题是这就是我的Excel工作表的样子(其中一个标签)
From Excel Maintainability Index
Lines MaxDev Max Min MinDev
Project1 332.00 94.83 100.00 70.00 72.64
Project2 2019.00 76.03 81.00 53.00 51.30
Project3 3052.00 87.37 100.00 42.00 62.57
Project4 576.00 94.88 100.00 69.00 77.25
Project5 1074.00 95.20 100.00 62.00 69.60
Project6 163.00 92.84 100.00 61.00 72.70
Project7 187.00 87.26 96.00 68.00 72.07
Project8 18.00 92.47 92.00 78.00 81.81
Project9 89.00 99.94 100.00 57.00 69.26
Project10 127.00 103.45 100.00 65.00 81.33
这就是我的查询返回的内容
From Access qryMaintiain
MaxDev Max Min MinDev
Project1 94.83 100.00 70.00 72.64
Project2 76.03 81.00 53.00 51.30
Project3 87.37 100.00 42.00 62.57
Project4 94.88 100.00 69.00 77.25
Project5 95.20 100.00 62.00 69.60
Project6 92.84 100.00 61.00 72.70
Project7 87.26 96.00 68.00 72.07
Project8 92.47 92.00 78.00 81.81
Project9 99.94 100.00 57.00 69.26
Project10 103.45 100.00 65.00 81.33
所以我试着添加我的线条总和......我得到一些疯狂的数字。那么如何在我的每个查询中获取代码行?哦,我想我应该提出我的qryLinesOfCode
SELECT
tblProjects.ProjectName,
Sum(tblLinesOfCode.LinesOfCode) AS LinesOfCode
FROM
tblProjects
INNER JOIN
tblLinesOfCode
ON tblProjects.ID = tblLinesOfCode.RunID
GROUP BY
tblProjects.ProjectName;
我认为直接向我的3个查询中添加另一个内连接(是3 ..第4个是代码行,但我的excel表只有3个选项卡)..所以我试过这个
SELECT
tblProjects.ProjectName,
Sum(tblLinesOfCode.LinesOfCode) AS LinesOfCode
Round(Avg(tblComplexity.CyclomaticComplexity)+StDevP(tblComplexity.CyclomaticComplexity),2) AS MaxDeviation,
Max(tblComplexity.CyclomaticComplexity) AS MaxOfCyclomaticComplexity,
Min(tblComplexity.CyclomaticComplexity) AS MinOfCyclomaticComplexity,
Round(Avg(tblComplexity.CyclomaticComplexity)-StDevP(tblComplexity.CyclomaticComplexity),2) AS MinDeviation
FROM
((tblProjects
INNER JOIN
tblComplexity
ON tblProjects.ID = tblComplexity.RunID)
INNER JOIN
tblLinesOfCode
ON tblProjects.ID = tblLinesOfCode.RunID)
GROUP BY
tblProjects.ProjectName;
但我得到了这个
ProjectName Lines MaxDev Max Min MinDev
Project1 6057 94.83 100 70 72.64
Project2 5049 76.03 81 53 51.3
Project3 201432 87.37 100 42 62.57
Project4 18432 94.88 100 69 77.25
Project5 32220 95.20 100 62 69.6
Project6 126 92.84 100 61 72.7
Project7 445 87.26 96 68 72.07
Project8 4980 92.47 92 78 81.81
Project9 12065 99.94 100 57 69.26
Project10 4238 103.45 100 65 81.33
有人可以帮帮我吗?谢谢
PS。我正在使用Access / Excel 2010
答案 0 :(得分:0)
SELECT
tblProjects.ProjectName,
qryLinesOfCode.LinesOfCode AS LinesOfCode,
Round(Avg(tblComplexity.CyclomaticComplexity)+StDevP(tblComplexity.CyclomaticComplexity),2) AS MaxDeviation,
Max(tblComplexity.CyclomaticComplexity) AS MaxOfCyclomaticComplexity,
Min(tblComplexity.CyclomaticComplexity) AS MinOfCyclomaticComplexity,
Round(Avg(tblComplexity.CyclomaticComplexity)-StDevP(tblComplexity.CyclomaticComplexity),2) AS MinDeviation
FROM
(tblProjects
INNER JOIN
tblComplexity
ON tblProjects.ID = tblComplexity.RunID
)
INNER JOIN
qryLinesOfCode
ON tblProjects.ProjectName = qryLinesOfCode.ProjectName
GROUP BY
tblProjects.ProjectName,
LinesOfCode;