使用SS报告服务2008,我正在考虑按日期按月分组设置销售数字的默认报告。
理论上它看起来应该有点像:
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)。有没有办法显示没有记录的日期?
答案 0 :(得分: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
然后您可以使用以下查询来获取销售数据 没有销售记录的天数的空记录。
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。
答案 1 :(得分:0)
为了扩展Nathan的答案,为了避免空值,你的select语句可以在sd.QTY字段上使用isnull:
isnull(sd.QTY,0)为'Qty'