SSRS类别分组(SSRS Category Grouping)

2019-10-21 05:27发布

我试图创建一个SSRS线图上一个分组类别。

我的查询是:

select distinct filedate, transaction_date, duedate, event_instance, event_name, eventstatus 
(datediff(DD, duedate, filedate)+1) as DaysAged,
-(DATEDIFF(WK, duedate, filedate) *2) 
-(case when DATENAME(DW, duedate) = 'sunday' then 1 else 0 end)
-(case when DATENAME(DW, FileDate) = 'saturday' then 1 else 0 end) as wkends
from MY TABLE where filedate =
    (select MAX(filedate) from MY TABLE)
and FileDate > duedate

在Reporting Services我创建了一个计算字段来总结“Daysaged”少了“wkends”值。 这给了我多少天过去的到期日。 在我的条形图,我想为0-5天,5-10天,11-15天和16+天吧。

我试过下面的表达式,但我不能图上的列或栏排序。

=IIf(Fields!Total_Aged_Days.Value<=5,"0-5 Days", IIF(Fields!Total_Aged_Days.Value<=10,"6-10 Days", IIF(Fields!Total_Aged_Days.Value<=15,"11-15 Days", "16+ Days")))

在此先感谢您的帮助。 我使用的是SSRS 2008。

Answer 1:

你在正确的轨道上。 表达有意义; 我已经调整了稍微使用Switch

=Switch(
  Fields!Total_Aged_Days.Value<=5, "0-5 Days"
  , Fields!Total_Aged_Days.Value<=10, "6-10 Days"
  , Fields!Total_Aged_Days.Value<=15, "11-15 Days"
  , true, "16+ Days"
)

正如你所看到的,这将被归类为一个字符串,所以不会像定购您想要。 为了解决这个问题,添加其他计算字段,给出正确的排序,并以此作为排序的表情,这将是从第一组表达不同:

=Switch(
  Fields!Total_Aged_Days.Value<=5, 1
  , Fields!Total_Aged_Days.Value<=10, 2
  , Fields!Total_Aged_Days.Value<=15, 3
  , true, 4
)

这会给你的团体所期待的顺序。 那种表情添加到类别组或其它地方是approriate。



文章来源: SSRS Category Grouping