Sql 尝试对两个表求和,其中一些表项在另一个表中不存在

Sql 尝试对两个表求和,其中一些表项在另一个表中不存在,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 对于任何

我想用一个将使用这两个表的和进行连接。对于表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 
     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