Mam kwerendy, gdzie próbuję wartości wierszy przestawnych do nazwy kolumn, a obecnie używam SUM(Case...) As 'ColumnName'
sprawozdań, tak:Dynamiczny SQL do generowania nazw kolumn?
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
Powyższa kwerenda działa doskonale i daje mi dokładnie to, czego potrzebuję. Jednak jestem wypisując SUM(Case...
oświadczenia strony oparte na wynikach następujące zapytanie:
Select Distinct Sku2 From OrderDetailDeliveryReview
Czy istnieje sposób, za pomocą T-SQL wewnątrz procedury przechowywanej, że mogę dynamicznego generowania sprawozdań SUM(Case...
z zapytania Select Distinct Sku2 From OrderDetailDeliveryReview
, a następnie wykonać wynikowy kod SQL?
Dzięki za odpowiedź. Widziałem wiele odpowiedzi, które używają 'COALESCE', ale co dokładnie robi ta funkcja? –
Ponadto, jeśli spróbuję uruchomić zapytanie bez zmian, otrzymam komunikat o błędzie w wierszu 15: "Niepoprawna składnia w pobliżu słowa kluczowego" FROM "." Jeśli usunę przecinek na końcu wiersza 14, otrzymam komunikat o błędzie na * linii 3 *, który mówi "Niepoprawna składnia w pobliżu" SUM "" Jakieś pomysły na temat tego, co tu się dzieje lub jak to debugować? –
@Cade Roux OK, poprawiłem kod (wstaw przecinek w cudzysłowie na końcu linii 14, dodano linię, aby przyciąć przecinek z @ column).Teraz działa, co jest świetne, ale nie wiem, co się dzieje między wierszami 14 i 17. –