Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL语句添加字段并基于另一个字段填充值_Sql - Fatal编程技术网

SQL语句添加字段并基于另一个字段填充值

SQL语句添加字段并基于另一个字段填充值,sql,Sql,我想在我的查询中添加一个额外的字段,根据字段(CheckNum)是否返回支票号码,该字段的值为“现金”或“支票” 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.Check

我想在我的查询中添加一个额外的字段,根据字段(CheckNum)是否返回支票号码,该字段的值为“现金”或“支票”

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

感谢您的帮助。

您可以在这里使用
案例。像这样-

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