2017-05-19 8 views
0

以下のようにsqlを作成し、SQLを実行しようとすると "MONTH"列が空になります。 JANをCPPERI = 1に表示する必要がありますが、JANを数値に変更すると、「MONTH」列に数字が表示されます この問題については助けてください。ありがとうcase文で結果に選択的にテキストまたは数値を表示

select EGAIT1 as "ACCOUNT NO" ,EATX15 as "DESC",CPYEA4 as "YEAR", 
(case when CPPERI = 1 then 'JAN' else 0 end) as "MONTH", 
sum(EGCUAM)as "AMT",EGAIT2 as "DEPARTMENT" from FGLEDG 
INNER JOIN FCHACC on (EGCONO=EACONO and EGDIVI=EADIVI and EGAIT1 = EAAITM) 
INNER JOIN CSYPER on (EGCONO=CPCONO and CPDIVI='TOH' and EGACDT between CPFDAT and CPTDAT) 
where EGACDT between '20170101' and '20170131' 
and EGAIT1 in ('56010','56020','56030','56040','56050') 
and EGAIT2 in ('AH03' ,'AH04') 
group by EGAIT1,EATX15,CPYEA4,CPPERI,CPTX15,EGAIT2 
order by EGAIT1 

答えて

1

どちらの結果は一部がvarchar型とそれ以外の部分の整数を返す「とき」あなたのケース.IN同じデータ型を返すことがあります。このようなものを試す

case when CPPERI = 1 then 'JAN' else '0' end 
関連する問題