지난번에 합계가 이상하다고 질문했을때 아래와 같이 답변을 주셨습니다.
우선은 감사하다는 말씀드립니다.
그런데 아래와 같이 해도 값은 똑같이 돌아 오네요...
다른 방법은 없을까요?
select D10.CustName,
sum( case when D10.ym = '2005-03' then D10.Amt1 else 0 end ) ,
sum( case when D10.ym = '2005-04' then D10.Amt1 else 0 end ) ,
............
from D10
where D10.Ym between '2005-03' and '2005-07'
and D10.Gubun in (1,9)
group by D10.CustName
naki 님이 쓰신 글 :
: FireBird 1.5를 쓰고요..
:
: Select D10.CustName
: SUM( case when (D10.Ym = :ParYm5 and D10.Gubun in (1,9) ) then D10.Amt1 else 0 end ) PAmt5,
: SUM( case when (D10.Ym = :ParYm4 and D10.Gubun in (1,9) ) then D10.Amt1 else 0 end ) PAmt4,
: SUM( case when (D10.Ym = :ParYm3 and D10.Gubun in (1,9) ) then D10.Amt1 else 0 end ) PAmt3,
: SUM( case when (D10.Ym = :ParYm2 and D10.Gubun in (1,9) ) then D10.Amt1 else 0 end ) PAmt2,
: SUM( case when (D10.Ym = :ParYm1 and D10.Gubun in (1,9) ) then D10.Amt1 else 0 end ) PAmt1
: From D10
: Group by D10.CustName
:
: ParYm5 = '2005-03'
: ParYm4 = '2005-04'
: ParYm3 = '2005-05'
: ParYm2 = '2005-06'
: ParYm1 = '2005-07'
:
: 위와같이 실행하면 PAmt5,PAmt4,PAmt3,PAmt2,PAmt1 의 값이 PAmt5의 값으로 똑같이 나옵니다.
: 물론 각각의 달의 값은 틀리지요..
:
: 첫번째 줄을 삭제하면 PAmt4의 값으로 독같이 나오고요..
: 이유를 모르겠네요... 부탁합니다..
|