2016-03-31 23 views
0

SQL SERVER 2012 In meinem case Server Konflikt mit '='. Warum funktioniert es nicht? hier ist mein Code:Fallanweisung funktioniert nicht richtig

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 

falsche Syntax in der Nähe von '='.

Antwort

0

Versuchen Sie, diese

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

vielen dank! Ich habe es nicht verstanden, warum es nicht funktioniert, wenn ich TM.Line nach dem Fall schreibe ... – Andrey

0

Diese Arbeit sollte:

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

Wenn Sie CASE-Ausdruck verwenden, sollte die WHEN-Klausel nur einen Wert (true/false je nach CASE-Ausdruck). Wenn kein CASE-Ausdruck verwendet wird, sollte der WHEN ein boolescher Ausdruck sein. Mehr Infos HERE.

+0

Wenn ich andere Zeichenfolge auskommentieren, dann funktioniert der Code nicht. Eine weitere Frage. ich schreiben kann wie folgt aus: 'CASE TM.CODE_5 WHEN '9491', '9492' und RS.SUB1Sel = ('05 .11 Strafen und Geldbußen) dann 'R0820-5' ELSE TABLE_MAIN_new.Line END' – Andrey