Ich habe eine Abfrage, wo ich Pivotzeile Werte in Spaltennamen ich versucht, und zur Zeit bin ich mit SUM(Case...) As 'ColumnName'
Aussagen, etwa so:Dynamisches SQL zum Generieren von Spaltennamen?
SELECT
SKU1,
SUM(Case When Sku2=157 Then Quantity Else 0 End) As '157',
SUM(Case When Sku2=158 Then Quantity Else 0 End) As '158',
SUM(Case When Sku2=167 Then Quantity Else 0 End) As '167'
FROM
OrderDetailDeliveryReview
Group By
OrderShipToID,
DeliveryDate,
SKU1
Die obige Abfrage funktioniert gut und gibt mir genau das, was ich brauche. Aber ich schreibe aus der SUM(Case...
Aussagen von Hand auf der Grundlage der Ergebnisse der folgenden Abfrage:
Select Distinct Sku2 From OrderDetailDeliveryReview
Gibt es eine Möglichkeit, T-SQL innerhalb einer gespeicherten Prozedur verwenden, dass ich dynamisch die SUM(Case...
Aussagen generieren von der Select Distinct Sku2 From OrderDetailDeliveryReview
Abfrage und führen Sie dann den resultierenden SQL-Code aus?
Danke für Ihre Antwort. Ich habe viele Antworten gesehen, die 'COALESCE' verwenden, aber was genau macht diese Funktion? –
Wenn ich versuche, Ihre Abfrage unverändert auszuführen, erhalte ich eine Fehlermeldung in Zeile 15: "Falsche Syntax in der Nähe des Schlüsselwortes 'FROM'." Wenn ich das Komma am Ende von Zeile 14 entferne, erhalte ich eine Fehlermeldung in * Zeile 3 *, die besagt: "Falsche Syntax in der Nähe von 'SUMME'" Irgendwelche Ideen, was hier vor sich geht oder wie das zu debuggen ist? –
@Cade Roux Ok, ich habe den Code optimiert (setze das Komma in die Anführungszeichen am Ende von Zeile 14; fügte eine Zeile hinzu, um das Komma von @column_list zu trimmen).Jetzt funktioniert es, was großartig ist, aber ich kann nicht herausfinden, was zwischen den Zeilen 14 und 17 passiert. –