Получение ошибки при сумме столбцов с псевдонимами Names - PullRequest
0 голосов
/ 24 июня 2018

Я новичок в SQL.У меня есть таблица под названием management.Я пытаюсь написать запрос, как показано ниже:

SELECT
    registerd, Appeared, registerd + Appeared AS col3 
FROM
    (SELECT 
         COUNT(REGDNO) AS registerd, branch_code,
         SUM(CASE WHEN SUB1_GRADE <> 'Ab' AND SUB1_GRADE IS NOT NULL OR
                       SUB2_GRADE <> 'Ab' AND SUB1_GRADE IS NOT NULL OR
                       SUB2_GRADE <> 'Ab ' AND SUB2_GRADE IS NOT NULL OR
                       SUB3_GRADE <> 'Ab' AND SUB3_GRADE IS NOT NULL OR 
                       SUB4_GRADE <> 'Ab' AND SUB4_GRADE IS NOT NULL OR  
                       SUB5_GRADE <> 'Ab' AND SUB5_GRADE IS NOT NULL OR 
                       SUB6_GRADE <> 'Ab' AND SUB6_GRADE IS NOT NULL OR 
                       SUB7_GRADE <> 'Ab' AND SUB7_GRADE IS NOT NULL
                 THEN 1 ELSE 0 END) As Appeared
     FROM 
         MANAGEMENT) AS subQueryAlias 
GROUP BY
    BRANCH_CODE

, но я получаю следующую ошибку

Сообщение 8120, уровень 16, состояние 1, строка 5
Столбец MANAGEMENT.BRANCH_CODE недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY

1 Ответ

0 голосов
/ 24 июня 2018

Предложение group by должно быть частью внутреннего подзапроса, а не внешнего запроса:

SELECT  registered, appeared, registered + appeared AS col3 
FROM    (SELECT   branch_code,
                  COUNT(regdno) AS registered,
                  SUM(CASE WHEN sub1_grade <> 'Ab' AND sub1_grade IS NOT NULL OR 
                                sub2_grade <> 'Ab' AND sub1_grade IS NOT NULL OR 
                                sub2_grade <> 'Ab' AND sub2_grade IS NOT NULL OR 
                                sub4_grade <> 'Ab' AND sub3_grade IS NOT NULL OR 
                                sub4_grade <> 'Ab' AND sub4_grade IS NOT NULL OR 
                                sub5_grade <> 'Ab' AND sub5_grade IS NOT NULL OR 
                                sub6_grade <> 'Ab' AND sub6_grade IS NOT NULL OR
                                sub7_grade <> 'Ab' AND sub7_grade IS NOT NULL
                           THEN 1 
                           ELSE 0
                      END) AS appeared
         FROM     management
         GROUP BY branch_code) AS subQueryAlias 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...