Я хочу включить в свой запрос только определенные группы клиентов для каждого региона. Я использую приведенный ниже запрос, который показывает ошибку.
select sum(salesvalue) from sales where (case when Region = 'TN' then CustomerGroup in (68,75,78,69,51,77,66) case when Region= 'KL' then CustomerGroup in (77,01,68,51,69,78) end)
Как мне этого добиться?
Вы можете сделать это без выражения case:
case
WHERE (Region = 'TN' AND CustomerGroup in (68,75,78,69,51,77,66)) OR (Region= 'KL' AND CustomerGroup in (77,01,68,51,69,78))
Это создает простое условное выражение, и его, вероятно, легче читать.
Вы не можете использовать CASE WHEN END в Where предложении.
CASE WHEN END
Where
Просто используйте И / ИЛИ logi c подобно.
If the column = value And the column IN the list of values.
select sum(salesvalue) from sales where (Region = 'TN' AND CustomerGroup in (68,75,78,69,51,77,66)) OR (Region= 'KL' AND CustomerGroup in (77,01,68,51,69,78))