Sql 尝试对两个表求和,其中一些表项在另一个表中不存在
我想用一个将使用这两个表的和进行连接。对于表2中没有的税码,我想显示0。是否有一个联接我可以使用,它的结果是INS1为150,INS2为0 表1 税则 归档代码 INS1 INS INS2 INSSql 尝试对两个表求和,其中一些表项在另一个表中不存在,sql,left-join,inner-join,right-to-left,Sql,Left Join,Inner Join,Right To Left,我想用一个将使用这两个表的和进行连接。对于表2中没有的税码,我想显示0。是否有一个联接我可以使用,它的结果是INS1为150,INS2为0 表1 税则 归档代码 INS1 INS INS2 INS 你只需要一个简单的左外连接 Select t1.TaxCode, sum(coalesce(Payment,0)) Payment from Table1 t1 left join Table2 t2 on t2.Taxcode=t1.Taxcode group by t1.Taxcode 对于任何
你只需要一个简单的左外连接
Select t1.TaxCode, sum(coalesce(Payment,0)) Payment
from Table1 t1
left join Table2 t2 on t2.Taxcode=t1.Taxcode
group by t1.Taxcode
对于任何想找到类似问题解决方案的人,我的问题如下
SELECT
T.TRAN_CODE,
SUM(ISNULL(TF.PAYMENT, 0)) AS PrePayment
FROM
Tranctl AS T
LEFT OUTER JOIN (
SELECT
T.TRAN_CODE,
0 AS PAYMENT
FROM
Tranctl AS T
CROSS JOIN Tran_File AS TF
UNION ALL SELECT
TF.TRAN_CODE,
TF.PAYMENT AS PrePayment
FROM Tran_File AS TF
WHERE
TF.ID = '10175'
AND TF.TAX_YEAR = '2021'
) TF ON T.TRAN_CODE = TF.TRAN_CODE
WHERE
T.Filing_Code = 'INS'
GROUP BY
T.TRAN_CODE
结果比那更复杂。我必须用联合和交叉联合来做左联合
SELECT
T.TRAN_CODE,
SUM(ISNULL(TF.PAYMENT, 0)) AS PrePayment
FROM
Tranctl AS T
LEFT OUTER JOIN (
SELECT
T.TRAN_CODE,
0 AS PAYMENT
FROM
Tranctl AS T
CROSS JOIN Tran_File AS TF
UNION ALL SELECT
TF.TRAN_CODE,
TF.PAYMENT AS PrePayment
FROM Tran_File AS TF
WHERE
TF.ID = '10175'
AND TF.TAX_YEAR = '2021'
) TF ON T.TRAN_CODE = TF.TRAN_CODE
WHERE
T.Filing_Code = 'INS'
GROUP BY
T.TRAN_CODE