2014-10-22 2 views
0

Это для отчета о списке адресов, который у меня есть. В основном клиенты и программы. Клиент может быть выписан из одной программы, но все еще активен в другой, поэтому я хочу опустить эти записи для определенной одной программы. Прямо сейчас я пытаюсь сделать что-то подобное в моем выборе:Опустить записи, основанные на утверждении кейса

case prg.Program 
when 'AES' then c.clientid not in (2938,30495,4958) 
else prg.Program 
end as test 

В основном я хочу, чтобы эти записи не отображаются, когда программа AES. Но если у них есть другая программа, я хочу, чтобы они все еще приходили. Это возможно?

Также программа и ClientID оба объявлены как переменные, не знаю, если это может помочь

ответ

2

Вы могли бы хотеть что-то вроде этого:

(case when prg.InterAct_Program <> 'AES' or c.clientid not in (2938, 30495, 4958) 
     then prg.InterAct_Program 
end) 

Это вернет NULL для значения.

Вы также можете захотеть where пункт:

where (prg.InterAct_Program <> 'AES' or c.clientid not in (2938, 30495, 4958)) 

Это на самом деле отфильтровать строки.

+1

Запрос состоит в том, чтобы исключить записи «AES» для перечисленных значений «clientid», но не исключать их для не-'AES', поэтому вам понадобится' NOT IN (2938, 30495, 4958) ' –

+0

, добавив не так, спасибо всем! – kspyy

Смежные вопросы