2013-09-06 3 views
0

Так что я думал, что делаю хорошо. Я сделал 5 таблиц. tblComplexity, tblCoupling, tblLinesOfCode, tblMaintainIndex и tblProjectsНевозможно выяснить, как установить программные показатели в MSAccess

tblProjects имеет 2 колонки [ID, название проекта]

4 других таблиц все имеют 3 колонки 3-го столбцов является тот, который отличается для каждого и как вы угадайте, основаны от имени

4 других таблиц [ID *, RunID, (сложность, сцепные, линий, MI)]

других 4 таблицы только имеют номера в них

я ставлю от нескольких до 1 р elation ship для tblProjects.ID и (4 таблицы). RunID на каждой из 4 таблиц.

Я тогда сделал запрос для каждого это 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 из этих запросов дать мне номер я после (я использовал, чтобы это все в один первенствовать лист.)

Моя цель в конце концов - подключить эту базу данных к 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..the четвёртый для строк коды, но мои первенствует лист имеет только 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

Ugh..finally понял это. Я не должен был перечитывать сумму. Вместо этого я использовал запрос

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; 
+0

Я следил за тем, что вы нашли в этом решении. Счастлив, что вы нашли результат! – Elias

+0

@ Elias Me тоже. Я дошел до последнего этапа, прежде чем я закончил с этим листом. Поскольку Visual Studio экспортирует метрику кода в excel, я хочу скопировать строки данных на вкладку на этом листе. Нажмите кнопку, чтобы загрузить данные в таблицы, а затем обновите мои графики. Надеюсь это работает :) –

Смежные вопросы