Я пытаюсь сделать pivot в T-SQL, который возвращает SUM(INVOICE_AMOUNT)
для 2015 и 2016 для каждого CUST_ID
.Pivot in T-SQL бросает синтаксическую ошибку
Но SQL я использую выдает ошибку:
Incorrect syntax near '('
и я не могу определить ошибку синтаксиса. Может ли кто-нибудь сообщить, что с ним не так?
SELECT
H.CUST_ID, [2015], [2016]
FROM
(SELECT
H.INVOICE_AMOUNT, YEAR(H.INVOICE_DT)
FROM
BILLING_HEADER H) p
PIVOT
SUM(H.INVOICE_AMOUNT) FOR YEAR(INVOICE_DT) IN ([2015], [2016])) AS pvt
Year(INVOICE_AMOUNT)
имеет статический вариант [2015] и [2016], так что не уверен, что случилось с SQL ..
Можете ли вы поместить слово 'YEAR (INVOICE_DT)' после · 'FOR'? Я думаю, что здесь может появиться только столбец. Дайте 'YEAR (INVOICE_DT)' псевдоним и используйте этот псевдоним после 'FOR'. – qxg
О! Спасибо, что указали, что «ему нужен псевдоним» ... Вот чего мне не хватает. Я дал псевдоним столбцам, и это работает трюк! (без перемещения 'YEAR (INVOICE_DT)' после 'FOR'.) Спасибо за ваш комментарий и прозрение. – reilic