Почему мои операторы count возвращают только значения первых столбцов во всех столбцах? - PullRequest
0 голосов
/ 07 февраля 2020

Когда я запускаю этот оператор select, он вернет все значения правильно во втором столбце, однако оставшиеся столбцы 3, 4 и 5 возвращают точно такие же значения, что и столбец 2. Мне интересно, почему это может быть? Заранее благодарны за Вашу помощь. Если вы должны знать, я пытаюсь подсчитать 3 значения всех этих полей, сгруппированных по школам. Подсчет 0, 1 и NULL по отдельности.

SELECT 
    sch.schoolID,
    COUNT(ISNULL(cm.attendance, 404)) AS 'cmAtt',
    COUNT(ISNULL(cm.allowTeacherRequests, 404)) AS 'cmTeacherReq',
    COUNT(ISNULL(c.attendance, 404)) AS 'cAtt',
    COUNT(ISNULL(c.allowTeacherRequests, 404)) AS 'cTeacherReq'
FROM CourseMaster AS cm
    INNER JOIN Course AS c ON c.courseMasterID = cm.courseMasterID
    INNER JOIN Calendar AS cal ON cal.calendarID = c.calendarID
        AND endYear = 2020
    INNER JOIN School AS sch ON sch.schoolID = cal.schoolID
        --MIDDLE SCHOOOLS
        AND sch.schoolID IN(15,16,17,21,28)
        --HIGH SCHOOLS
        --AND sch.schoolID IN(18,19,20,22)
GROUP BY 
    sch.schoolID,
    cm.attendance,
    cm.allowTeacherRequests
    --c.attendance,
    --c.allowTeacherRequests
ORDER BY 
    sch.schoolID,
    cm.attendance,
    cm.allowTeacherRequests

Суммированная возвращаемая информация выглядит примерно так:

ID  c2   c3   c4   c5
18, 106, 106, 106, 106

Она должна выглядеть примерно так:

ID  c2   c3  c4  c5
18, 106, 90, 80, 210

РЕДАКТИРОВАТЬ: Вот образец того, что возвращается. столбец a - это идентификатор, а b - количество (0,1, NULL). Однако столбец b реплицируется в c, d и e. C, d и e на самом деле имеют разные значения. Я пытаюсь выяснить, почему столбцы реплицируются в соответствии с б.

a   b   c   d   e
15  390 390 390 390
15  354 354 354 354
15  29  29  29  29
...