Использование предложения IN в THEN части выражения CASE - PullRequest
0 голосов
/ 28 февраля 2020

Я хочу включить в свой запрос только определенные группы клиентов для каждого региона. Я использую приведенный ниже запрос, который показывает ошибку.

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)

Как мне этого добиться?

Ответы [ 2 ]

3 голосов
/ 28 февраля 2020

Вы можете сделать это без выражения 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))

Это создает простое условное выражение, и его, вероятно, легче читать.

1 голос
/ 28 февраля 2020

Вы не можете использовать 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))
...