Mam problem przy próbie wypracowania najmodniejszego rozwiązania dla następującego problemu.SQL - OŚWIADCZENIE CASE - GDY instrukcja i oświadczenie
Mam tabelę Zakup, który ma kolumnę State, przy czym 1 jest autoryzowany, 2 jest zakończony, a niektóre są również inne.
Posiadam również tabelę sprzedawców, która ma kolumnę RetailerProcessType, przy czym 1 to jeden krok, a 2 to dwustopniowy.
Teraz patrz poniższy zapytanie ...
CASE purc.State
WHEN 1 THEN '"AUTHORISED"'
WHEN 2 THEN '"AUTHORISED"'
WHEN 4 THEN '"AUTHORISED"'
ELSE '"DECLINED"'
END AS Autorised_Decline_Status,
Co muszę zrobić to w następujący sposób:
KIEDY STAN = 2 i RetailerProcessType = 1 Then ' "autoryzowane"'
KIEDY STAN = 1 i RetailerProcessType = 2 Then ' "pending"'
KIEDY STAN = 2 i RetailerProcessType = 2 Then ' "autoryzowane"'
ELSE „«odrzucona»”
Jedynym sposobem, widzę w ten sposób wywiera ogromny IF wokół zapytania, jeden na jednego kroku sprzedawcy, a inny dla dwustopniowo moje rozumienie jest klauzula WHEN nie może zawierać "AND".
Jednak wydaje się to po prostu ohydne i zdyszane, czy ktoś ma jakieś lepsze pomysły?
Steven