1

以下は実際の請求表です

ここに画像の説明を入力

請求書 ID に基づいてグループ化した後、結果セットは次のようになります。 ここに画像の説明を入力

そして実際の支払い表は

ここに画像の説明を入力

そして、invoiceID に基づいてグループ化した後の支払い結果セットは

ここに画像の説明を入力

ここで、これら 2 つの結果セット [支払いと請求書の表] を結合し、InvoiceID に基づいて金額から合計を差し引いた残高を見つけます。一致しないレコードの場合、残高列はゼロである必要があります。これを試しましたが、期待した結果が得られませんでした。

4

1 に答える 1

1

このようなことを試してみてください。

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
于 2012-09-28T06:55:37.317 に答える