0

フィールド (CheckNum) が小切手番号を返すかどうかに基づいて、「Cash」または「check」のいずれかの値を持つ特別なフィールドをクエリに追加したいと考えています。

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

どんな助けでも感謝します。

4

1 に答える 1

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
于 2012-06-16T09:23:49.127 に答える