如何在sql中将两个查询结果添加为单个结果?

如何在sql中将两个查询结果添加为单个结果?,sql,sql-server,database,Sql,Sql Server,Database,我需要添加两个查询作为单个结果输出 第一个查询输出来自“InvoiceDetail”表: 我的第二个查询输出来自“InvoiceCharge”表: 最后,我希望输出如下: 发票ID、邮政编码、数量、CPrice、TCost、已付金额、总费用 19327 07310000504 1 22.38 22.38 368.59 0.00 19326 07161030192 1 28.90 28.90 5402.69 15.00 19326 07013711044

我需要添加两个查询作为单个结果输出

第一个查询输出来自“InvoiceDetail”表:

我的第二个查询输出来自“InvoiceCharge”表:

最后,我希望输出如下:

发票ID、邮政编码、数量、CPrice、TCost、已付金额、总费用

19327   07310000504 1   22.38   22.38   368.59   0.00
19326   07161030192 1   28.90   28.90   5402.69  15.00
19326   07013711044 2   12.53   25.06   5402.69  15.00
19327   07310000622 2   6.28    12.56   368.59    0.00
19326   07013721043 1   25.07   25.07   5402.69  15.00
19327   07310000626 2   6.28    12.56   368.59   0.00
19327   01230050268 2   37.15   74.30   368.59   0.00
19326   04210000910 2   9.84    19.68   5402.69  15.00
19327   01230050271 1   37.15   37.15   368.59    0.00
这就是我需要的

此处发票号19326,收费(9.00+6.00)=15.00
和InvoiceID 19327没有费用,因此在InvoiceCharge表中找不到行。

请尝试下面的查询

select 
        InvoiceID, 
        POSCode, 
        CQuantity, 
        CPrice, 
        TCost, 
        AmountPaid, 
        (SELECT sum(totalCharge) FROM InvoiceCharge IC WHERE IC.InvoiceID = ID.InvoiceID) AS totalCharge 
from InvoiceDetail ID
试试这个:

select  InvoiceID, 
    POSCode, 
    CQuantity, 
    CPrice, 
    TCost, 
    AmountPaid,
    (case when a.charge is null then 0 else a.charge end)) as totalCharge
    from InvoiceDetail left join (SELECT sum(totalCharge) as charge , InvoiceCharge.InvoiceID FROM InvoiceCharge group by InvoiceCharge.InvoiceID) a on InvoiceCharge.InvoiceID = InvoiceDetail.InvoiceID 

谢谢这对我来说很好
select 
        InvoiceID, 
        POSCode, 
        CQuantity, 
        CPrice, 
        TCost, 
        AmountPaid, 
        (SELECT sum(totalCharge) FROM InvoiceCharge IC WHERE IC.InvoiceID = ID.InvoiceID) AS totalCharge 
from InvoiceDetail ID
select  InvoiceID, 
    POSCode, 
    CQuantity, 
    CPrice, 
    TCost, 
    AmountPaid,
    (case when a.charge is null then 0 else a.charge end)) as totalCharge
    from InvoiceDetail left join (SELECT sum(totalCharge) as charge , InvoiceCharge.InvoiceID FROM InvoiceCharge group by InvoiceCharge.InvoiceID) a on InvoiceCharge.InvoiceID = InvoiceDetail.InvoiceID