だから上手いなと思いました。テーブルを5つ作りました。tblComplexity、tblCoupling、tblLinesOfCode、tblMaintainIndex、tblProjects
tblProjects には 2 つの列 [ID、プロジェクト名] があります。
他の 4 つのテーブルにはすべて 3 つの列があり、3 番目の列はそれぞれに異なる列であり、名前から推測されるとおりです。
その他の 4 つのテーブル [ID*、RunID、(複雑さ、カップリング、ライン、MI)]
他の4つのテーブルには数字しかありません
4 つのテーブルのそれぞれに、tblProjects.ID と (4tables).RunID の多対 1 のリレーションシップを配置しました。
次に、それぞれに対してクエリを作成しました。これは qryComplexity です
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 つすべてで、求めている数字が得られます (以前は、これをすべて 1 つの Excel シートにまとめていました)。
私の最終的な目標は、このデータベースを Excel に接続して、グラフを作成できるようにすることです。問題は、これが私のExcelシートのように見えることです(タブの1つ)
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 を使用しています