2012-06-16 2 views
0

필드 (CheckNum)가 값을 반환하는지 여부에 따라 'Cash'또는 'check'값을 갖는 추가 필드를 쿼리에 추가하려고합니다. 번호를 확인하십시오. 위의 질의에 대한필드를 추가하고 다른 필드를 기반으로 값으로 채우기위한 SQL 문

SELECT t1.DocNum, t0.DocDate, t0.CardName, t0.CardCode, t1.CheckNum, t0.DocTotal 
FROM OVPM t0 INNER JOIN 
VPM1 t1 ON t1.docnum = t0.docnum LEFT OUTER JOIN 
OACT t2 ON t2.AcctCode = t1.CheckAct 

UNION ALL 

SELECT t1.DocNum, t0.DocDate, t0.CardName, t0.CardCode, t1.CheckNum, t0.DocTotal 
FROM ORCT t0 INNER JOIN 
     RCT1 t1 ON t1.docnum = t0.docnum LEFT OUTER JOIN 
     OACT t2 ON t2.AcctCode = t1.CheckAct 

샘플 결과 :

          CheckNum  DocTotal 
3 Alibhai shariff & Sons Ltd S0003  67901  39663.000000 
5 Silverstone Tyres (K) Ltd S0191  0   93200.000000 
6 Lam Limited     S0167  1372   66380.000000 
7 Osho Chemicals Industries S0198  0   21100.000000 

내가 좋아하는 것이 무엇을 :

          CheckNum  DocTotal   PayType 
3 Alibhai shariff & Sons Ltd S0003  67901  39663.000000  Check 
5 Silverstone Tyres (K) Ltd S0191  0   93200.000000  Cash 
6 Lam Limited     S0167  1372   66380.000000  Check 
7 Osho Chemicals Industries S0198  0   21100.000000  Cash 

어떤 도움에 감사드립니다.

답변

1

여기서 CASE을 사용할 수 있습니다. 이처럼 -

SELECT t1.DocNum, t0.DocDate, t0.CardName, t0.CardCode, t1.CheckNum, t0.DocTotal, 
     CASE WHEN t1.CheckNum = 0 THEN 'Cash' ELSE 'Check' END AS PayType 
FROM OVPM t0 INNER JOIN 
     VPM1 t1 ON t1.docnum = t0.docnum LEFT OUTER JOIN 
     OACT t2 ON t2.AcctCode = t1.CheckAct 

UNION ALL 

SELECT t1.DocNum, t0.DocDate, t0.CardName, t0.CardCode, t1.CheckNum, t0.DocTotal, 
     CASE WHEN t1.CheckNum = 0 THEN 'Cash' ELSE 'Check' END AS PayType 
FROM ORCT t0 INNER JOIN 
     RCT1 t1 ON t1.docnum = t0.docnum LEFT OUTER JOIN 
     OACT t2 ON t2.AcctCode = t1.CheckAct 
+0

게시물을 보내 주셔서 감사합니다. –

관련 문제