繁体   English   中英

SSRS Report Builder - 在条形图上显示零值的列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM