![](/img/trans.png)
[英]SSRS Report Builder - Only Show Header On First Page (With Page Numbers)
[英]SSRS Report Builder - Show colums with zero value on bar chart
我创建了一个一周的预测图表,预测下一周我们将收到的包裹数量。 数据集查询正在抓取每天的列,然后报表生成器正在计算相关的跟踪号。 我的问题是它会跳过计数值为 0 包的列。 例如,它从今天到 +2 天,如果 count(tomorrow)=0 则跳过明天。 我希望报告显示所有列,无论计数为 0。 有任何想法吗?
Select 查询供参考 -
SELECT
TrackingNumber,
case when DATEDIFF(DAY,GETDATE(),ScheduledDelivery)=0 then' Today'
when DATEDIFF(DAY,GETDATE(),ScheduledDelivery)=1 then' Tomorrow'
when DATEDIFF(DAY,GETDATE(),ScheduledDelivery)=2 then'+2 Days'
when DATEDIFF(DAY,GETDATE(),ScheduledDelivery)=3 then'+3 Days'
when DATEDIFF(DAY,GETDATE(),ScheduledDelivery)=4 then'+4 Days'
when DATEDIFF(DAY,GETDATE(),ScheduledDelivery)=5 then'+5 Days'
when DATEDIFF(DAY,GETDATE(),ScheduledDelivery)=6 then'+6 Days'
else NULL
end as 'Delivery Day'
在不知道数据集完成后的样子的情况下,很难给出准确的答案,但我们假设它看起来像
曲目编号 | 交货日期 | 一个号码 |
---|---|---|
ABC123 | 今天 | 5 |
ABC123 | +2 天 | 3 |
ABC123 | +3 天 | 7 |
ABC123 | +4 天 | 8 |
ABC123 | +6 天 | 9 |
你希望它看起来像这样......
曲目编号 | 交货日期 | 一个号码 |
---|---|---|
ABC123 | 今天 | 5 |
ABC123 | 明天 | 0 |
ABC123 | +2 天 | 3 |
ABC123 | +3 天 | 7 |
ABC123 | +4 天 | 8 |
ABC123 | +5 天 | 0 |
ABC123 | +6 天 | 9 |
然后,您可以创建一个包含所有可能值的表(或表变量)并将其加入。 您也可以简化查询,因为您将不再需要 case 语句
就像是
DECLARE @t TABLE(DelDays int, DelCaption varchar(20))
INSERT INTO @t VALUES
(0, 'Today'),
(1, 'Tomorrow'),
(2, '+2 Days'),
(3, '+3 Days'),
(4, '+4 Days'),
(5, '+5 Days'),
(6, '+6 Days')
SELECT
a.TrackNo, t.DelCaption, ISNULL(a.ANumber,0) AS ANumber
FROM @t t
LEFT JOIN myTable a
ON t.DelDays = DATEDIFF(DAY,GETDATE(),ScheduledDelivery)
如果您经常这样做,那么我建议您创建一个新表来永久保存我们在上面的示例中放入@t
的数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.