我有一個查詢嘗試編制費用和信用報告,並按項目代碼和結算週期進行分組。它從拉計費表的格式如下:根據值從結果集中選擇特定記錄
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
);
那麼最終發生的事情是這樣的:說,例如,我對2011年1三月,但沒有別的充一次電。該表將返回輸出是這樣的:
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