0

だから上手いなと思いました。テーブルを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 を使用しています

4

1 に答える 1