如何在sql中将两个查询结果添加为单个结果?
我需要添加两个查询作为单个结果输出 第一个查询输出来自“InvoiceDetail”表: 我的第二个查询输出来自“InvoiceCharge”表: 最后,我希望输出如下: 发票ID、邮政编码、数量、CPrice、TCost、已付金额、总费用如何在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
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