Ich versuche, einen Pivot in T-SQL, die SUM(INVOICE_AMOUNT)
für 2015 und 2016 für jeden CUST_ID
zurückgeben.Pivot in T-SQL löst Syntaxfehler
Aber die SQL ich benutze wirft einen Fehler:
Incorrect syntax near '('
und ich kann den Syntaxfehler nicht erkennen. Könnte jemand raten, was damit nicht stimmt?
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
Die Year(INVOICE_AMOUNT)
hat statische Möglichkeit, [2015] und [2016], so sicher nicht, was mit dem SQL falsch ..
Können Sie 'YEAR (INVOICE_DT)' nach · 'FOR' Schlüsselwort? Ich denke nur Spalte kann hier erscheinen. Geben Sie 'YEAR (INVOICE_DT)' einen Alias und verwenden Sie diesen Alias nach 'FOR'. – qxg
Oh! Danke für den Hinweis "es braucht einen Alias" ... Das fehlt mir. Ich habe den Spalten Alias gegeben und es funktioniert der Trick! (ohne 'YEAR (INVOICE_DT)' nach dem 'FOR' zu verschieben.) Danke für deinen Kommentar und deine Einsicht. – reilic