如何解决SSRS 报表生成器 - 在条形图上显示零值列
我创建了一个为期一周的预测图表,用于预测下周我们将收到的包裹数量。数据集查询获取每天的列,然后报告生成器对相关的跟踪编号进行计数。我的问题是它会跳过计数值为 0 包的列。例如,它从今天到 +2 天,如果 count(tomorrow)=0,则跳过明天。我希望报告显示所有列,而不管计数为 0。有什么想法吗?
选择查询以供参考 -
SELECT
TrackingNumber,case when DATEDIFF(DAY,GETDATE(),ScheduledDelivery)=0 then' Today'
when DATEDIFF(DAY,ScheduledDelivery)=1 then' Tomorrow'
when DATEDIFF(DAY,ScheduledDelivery)=2 then'+2 Days'
when DATEDIFF(DAY,ScheduledDelivery)=3 then'+3 Days'
when DATEDIFF(DAY,ScheduledDelivery)=4 then'+4 Days'
when DATEDIFF(DAY,ScheduledDelivery)=5 then'+5 Days'
when DATEDIFF(DAY,ScheduledDelivery)=6 then'+6 Days'
else NULL
end as 'Delivery Day'
解决方法
如果不知道您的数据集完成后是什么样子,就很难给出确切的答案,但让我们假设它看起来像
TrackNo | 交货日期 | A号码 |
---|---|---|
ABC123 | 今天 | 5 |
ABC123 | +2 天 | 3 |
ABC123 | +3 天 | 7 |
ABC123 | +4 天 | 8 |
ABC123 | +6 天 | 9 |
你希望它看起来像这样......
TrackNo | 交货日期 | A号码 |
---|---|---|
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
的数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。