料金とクレジットのレポートをアイテムコードと請求期間別にグループ化してクエリを作成します。それから引っ張る料金表は以下の形式があります:私は私の現在のクエリはかなりうまく処理し、いくつかの問題に実行している値に応じて結果セットから特定のレコードを選択する
BillingPeriod|ItemCode|ItemName|Charge|IsAdjustment|AdjustmentDate|ReportTimestamp
を、私は思います。課金コードは課金コードでは発生しないため、課金されていないため、各課金期間を表示する均一なテーブルが必要なので、請求期間とゼロでいっぱいのダミーテーブルを作成し、ユニオン、このような料金表からの結果、とのこと:
SELECT BillingPeriod, SumOfCharge AS Total FROM (
SELECT BillingPeriod, 0 AS SumOfCharge
FROM Charges
UNION
SELECT BillingPeriod, SUM(Charge) AS SumOfCharge
FROM Charges
WHERE (ItemCode Between 1900 and 1995)
GROUP BY BillingPeriod
);
だから何が起こって終わることはこれです:言うには、例えば、私は1回の2011年の1月と3月の料金が、他には何を持っています。表には、このような出力を返します:私は何をしようとしている
BillingPeriod|Charge
1/1/2011 |100.00
1/1/2011 |0
2/1/2011 |0
3/1/2011 |0
3/1/2011 |-23.00
4/1/2011 |0
5/1/2011 |0
6/1/2011 |0
7/1/2011 |0
は、それらの0の値を持つ行を取り除くと、レポートに表示する正しいものを選択です。トリッキーな部分は、値が正、負、ゼロのいずれかになる可能性があるため、MAXを実行するだけでは機能しません。私もFIRST()またはLAST()を試しました。(COALESCE())が動かない、私はアクセスしています)。どんな助けもありがとう。
すごい、私は信じることができません私はそれがあなたに感謝したとは思わなかった! – Tom