Ошибка сводки T-SQL: неверный синтаксис около '0' - PullRequest
0 голосов
/ 23 сентября 2018

Я не уверен, что я делаю неправильно в своем коде.Я получаю сообщение об ошибке:

Сообщение 102, Уровень 15, Состояние 1, Строка 82
Неверный синтаксис около '0'

Может кто-нибудь помочь найти то, что мойошибка есть?Я пытаюсь повернуть таблицу так, чтобы запрос возвращал заголовки с возрастными группами вместо строк.

SELECT *
FROM 
    (SELECT
         ID,
         CASE 
            WHEN Age BETWEEN 0 AND 4 THEN '0-4 Years'
            WHEN  Age  BETWEEN 5 AND 24 THEN '5-24 Years' 
            WHEN Age BETWEEN 25 AND 49 THEN '25-49 Years'
            WHEN Age BETWEEN 50 AND 64 THEN '50-64 Years'
            WHEN Age > 64 THEN '> 64 Years'
        END AS GroupAge
    FROM 
        #AD) t
PIVOT
    (COUNT(ID)
         FOR GroupAge IN 
             (0-4 Years,5-24 Years,25-49 Years,> 64 Years)
    ) AS pvt

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Ошибка вызвала необходимость использовать квадратные скобки в столбцах сводки, поскольку столбцы 0-4 Years .. не являются обычной строкой.

Я бы использовал функцию агрегатного условия do pivot.

SELECT
    COUNT(CASE WHEN Age BETWEEN 0 AND 4 THEN  ID END) '0-4 Years', 
    COUNT(CASE WHEN Age BETWEEN 5 AND 24  THEN  ID END) '5-24 Years' , 
    COUNT(CASE WHEN Age BETWEEN 25 AND 49 THEN  ID END) '25-49 Years', 
    COUNT(CASE WHEN Age BETWEEN 50 AND 64 THEN  ID END) '50-64 Years', 
    COUNT(CASE WHEN  Age > 64 THEN  ID END) '> 64 Years'
FROM #AD
0 голосов
/ 23 сентября 2018

Поставьте квадратные скобки [] вокруг названий ваших столбцов.

PIVOT
(
    COUNT(ID)
    FOR GroupAge IN 
    ([0-4 Years],[5-24 Years],[25-49 Years],[50-64 Years],[> 64 Years])
) AS pvt
...