2016-03-31 2 views
0

SQL SERVER 2012 В моем case конфликте сервера с '='. Почему он не работает? вот мой код:Операция с примером не работает

SELECT 
TM.CODE_3 as Account, 
TM.NAME_3, 
TM.CODE_5, 
case TM.Line 
when TM.CODE_5 = '9491'--and RS.SUB1Sel = ('05.11 Penalties and fines') 
    then 'R0820-5' 
else TABLE_MAIN_new.Line 
end 
FROM TABLE_Main_new as TM 
left join Danone_Main as DM 
on TM.CODE_3 = DM.CODE_3 
left join Rep_Struct_2012_N as RS 
on TM.CODE_3 = RS.CODE_3 

Неправильный синтаксис около '='.

ответ

0

Попробуйте

case 
    when TM.CODE_5 = '9491'--and RS.SUB1Sel = ('05.11 Penalties and fines') 
    then 'R0820-5' 
else TABLE_MAIN_new.Line 
End 
+1

большое спасибо! Я не понял, почему это не работает, когда я пишу TM.Line после случая ... – Andrey

0

Это должно работать:

CASE TM.CODE_5 
    WHEN '9491'--and RS.SUB1Sel = ('05.11 Penalties and fines') 
    THEN 'R0820-5' 
ELSE TABLE_MAIN_new.Line 
END 

При использовании выражения случае, ЕСЛИ условие должно быть только значение (истина/ложь в зависимости от вашего выражения CASE). Если выражение CASE не используется, WHEN должно быть логическим выражением. Подробнее HERE.

+0

Когда я раскомментирую другую строку, тогда код не работает. Ещё один вопрос. Могу ли я написать так: 'СЛУЧАЙ TM.CODE_5 КОГДА '9491', '9492' и RS.SUB1Sel = ('05 .11 Штрафы и пени) затем '' R0820-5 ELSE TABLE_MAIN_new.Line END' – Andrey

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