PDA

View Full Version : روش صحیح دستور case در sql2000



sempaisaleh
جمعه 26 اردیبهشت 1393, 09:19 صبح
با سلام خدمت دوستان عزیز
من یه دیتابیس دارم که توش چندین sp هست. حالا تو یکی از sp ها این تکه کد بود. فکر کنم اشتباه باشه. میشه یه راهنمایی کنید. مشکل فکر کنم از دستور case باشه.

select * from (
Select
L1_CODE,L1_Name,L2_CODE,L2_Name,A.L3_CODE,a.L3_Nam e,
Case when Sum(Mandeh)>0 Then Sum(Mandeh) Else 0 End As MBed ,
Case when Sum(Mandeh)<0 Then -1*Sum(Mandeh) Else 0 End As MBes
From
a_vw_article a Left Outer Join A_Acc_cd3 Cd3 On a.L3_Code=Cd3.l3_code
Left Outer Join A_L3Type L3 On Cd3.L3Type_cd=L3.L3Type_cd
Where
(acc_year = 1392 ) and
( ( (L1_CODE<=103) And (L1_CODE>=103) ) ) and
(( (SND_DATE<='92/01/01') And (SND_DATE>='92/12/31') ) )
Group By L1_CODE,L1_Name,L2_CODE,L2_Name,a.L3_CODE,a.L3_Nam e
) kk
Order By L1_CODE

Rejnev
جمعه 26 اردیبهشت 1393, 10:20 صبح
متن خطایی که میده چیه؟

sempaisaleh
یک شنبه 28 اردیبهشت 1393, 08:11 صبح
متن خطایی که میده چیه؟

از عبارت case خطا میگیره. میگه کلمه case اشتباه است.

hossein_h62
یک شنبه 28 اردیبهشت 1393, 23:57 عصر
کد زیر نباید مشکلی داشته باشه :
select * from (
Select
L1_CODE,L1_Name,L2_CODE,L2_Name,A.L3_CODE,a.L3_Nam ,
Case when Sum(Mandeh)>0 Then Sum(Mandeh) Else 0 End As MBed ,
Case when Sum(Mandeh)<0 Then -1*Sum(Mandeh) Else 0 End As MBes
From
a_vw_article a Left Outer Join A_Acc_cd3 Cd3 On a.L3_Code=Cd3.l3_code
Left Outer Join A_L3Type L3 On Cd3.L3Type_cd=L3.L3Type_cd
Where
(acc_year = 1392 ) and
( ( (L1_CODE<=103) And (L1_CODE>=103) ) ) and
(( (SND_DATE<='92/01/01') And (SND_DATE>='92/12/31') ) )
Group By L1_CODE,L1_Name,L2_CODE,L2_Name,a.L3_CODE,a.L3_Nam
) kk
Order By L1_CODE

pezhvakco
چهارشنبه 31 اردیبهشت 1393, 19:26 عصر
سلام
در آخر خط 3 و 13 کدی که این جا نوشتید

,a.L3_Nam e,
باید

,a.L3_Name,
باشد