Chcę poprawić następujący kod SQL, aby zapytanie wyświetliło typ karty (wiza, karta master itd.) Jako PaymentMethod zamiast karty kredytowej.Opisy przypadków z warunkami warunkowymi w serwerze SQL
CASE WHEN pm.PaymentType = 1 THEN 'Cash'
WHEN pm.PaymentType = 2 THEN 'Check'
WHEN pm.PaymentType = 3 THEN 'Credit Card'
WHEN pm.PaymentType = 4 THEN 'EFT'
WHEN pm.PaymentType = 5 THEN 'Money Order'
WHEN pm.PaymentType = 6 THEN 'Conveyance'
ELSE 'Unknown'
END AS PaymentMethod,
Czy ktoś może wskazać mi właściwy kierunek. Próbowałem, dodając drugi warunkowy do mojego rachunku przypadek, ale nie udaje się „nieznane” dla wszystkich rodzajów płatności o 3.
CASE WHEN pm.PaymentType = 1 THEN 'Cash'
WHEN pm.PaymentType = 2 THEN 'Check'
WHEN pm.PaymentType = 3 and pm.CardTypeMId = 1 THEN 'American Express'
WHEN pm.PaymentType = 3 and pm.CardTypeMId = 2 THEN 'Discover'
WHEN pm.PaymentType = 3 and pm.CardTypeMId = 3 THEN 'Mastercard'
WHEN pm.PaymentType = 3 and pm.CardTypeMId = 4 THEN 'Visa'
WHEN pm.PaymentType = 4 THEN 'EFT'
WHEN pm.PaymentType = 5 THEN 'Money Order'
WHEN pm.PaymentType = 6 THEN 'Conveyance'
ELSE 'Unknown'
END AS PaymentMethod,
Z góry dziękuję za pomoc.
Brzmi jak 'pm.CardTypeMId' nie może być 1, 2, 3 lub 4? – LittleBobbyTables
Duplikat IMO, http://stackoverflow.com/questions/3043154/combining-multiple-count -in-single-case-statement-in-sql-server – Adam
Wygląda dobrze dla mnie, zgodna z ANSI SQL. (Wypróbuj CASE w zewnętrznych CASE, jeśli 3 to.) – jarlh