異なる請求書を含む請求書のテーブルがあります。各請求書には、一意の請求書番号と金額の値があります。請求書は2種類あります。1 つは請求書タイプで、もう 1 つは決済タイプです。請求書が作成されている場合、テーブルのエントリは請求書タイプになり、金額はプラスになります。ユーザーがその請求書を支払った場合、同じ請求書番号を持つ別のエントリがテーブルに入力されますが、ユーザーがその金額を支払ったため、マイナスの金額が入力されます。
ここで、請求書番号が同じレコードが 2 つ存在する場合にレコードを表示し、金額の合計を計算してレコードを表示します (つまり、請求書タイプのレコードと決済タイプのレコードの金額を加算することを意味します)。また、固有の請求書番号を持つ (決済記録のない) レコードは、そのまま (合計なし) に表示する必要があります。
クエリはこのようなものになると思います..しかし、それはまさに私が望んでいるものではありません!
Select
InvoiceNumber, InvoiceTypeCode,
Amount = case when COUNT(InvoiceNumber) > 1
then SUM(Amount)
else Amount
end
from
Invoice
group by
InvoiceNumber, Amount, InvoiceTypeCode