2011-05-11 75 views
2

使用SS報表服務2008年,我正在設置一個按日期分組的月銷售數據的默認報表。SSRS - 按日期分組表達式

從理論上講它應該看起來有點像:我有

Date   Total Sales Qty 
---------------------------------- 
01/04/2011 $15.00   3 
02/04/2011 $20.00   4 
03/04/2011 $00.00   0 
Etc 

問題是該月的日子,沒有記錄被跳過。 (像上面03/04/2011)。有沒有辦法顯示沒有記錄的日期?

回答

1

在SSRS中沒有辦法專門做到這一點,但它可以在SQL查詢中完成。

您需要生成一個臨時表(數據庫中的永久表也可以很好,如果您打算這麼做的話),並在其中包含連續日期列表,然後將其加入現有數據使用外部聯接進行查詢。這種方式的日期沒有數據將在連接後顯示爲表中的空條目。

舉例來說,如果你有下列表格

DateList

Date 
---- 
2011-01-01 
2011-01-02 
2011-01-03 
2011-01-04 
2011-01-05 
etc... 

SALESDATA

Date  Qty 
---------------- 
2011-01-01 5 
2011-01-02 4 
2011-01-04 7 

,那麼你可以使用下面的查詢來獲取的銷售數據對於沒有sa的日子, 空記錄錄製的。

select 
    dl.Date, 
    sd.Qty 
from SalesData sd 
    left outer join DateList dl on dl.Date = sd.Date 


Date Qty 
-------------- 
2011-01-01 5 
2011-01-02 4 
2011-01-03 (null) 
2011-01-04 7 
2011-01-05 (null) 
etc... 

有關生成加入日期列表的信息,請參閱this question

0

要擴大Nathan的回答,避免你的SELECT語句的sd.QTY場使用ISNULL空值:
ISNULL(sd.QTY,0)作爲 '數量'