下面是实际发票表
在基于invoiceID对其进行分组之后,resultset是
实际付款表是
其基于invoiceID分组后的支付结果为
现在,我要将这两个结果集[付款和发票表]合并,并根据InvoiceID找到余额减去总金额,对于不匹配的记录,余额列应该为零。我试过了,但没有得到预期的结果。

最佳答案

试试这样的东西,

SELECT  a.InvoiceID,
        a.totalSum InvoiceAmount,
        b.totalSum PaymentAmount,
        a.totalSum - COALESCE(b.totalSum, 0) TotalBalance
FROM
    (
        SELECT  InvoiceID, SUM(Total) totalSum
        FROM    InvoiceTB
        GROUP BY InvoiceID
    ) a LEFT JOIN
    (
        SELECT  InvoiceID, SUM(Total) totalSum
        FROM    paymentTB
        GROUP BY InvoiceID
    ) b
        ON a.InvoiceID = b.InvoiceID

09-11 18:31