【问题标题】:SSRS Category GroupingSSRS 类别分组
【发布时间】:2014-11-04 14:41:36
【问题描述】:

我正在尝试在 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。

【问题讨论】:

    标签: reporting-services ssrs-grouping


    【解决方案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"
    )
    

    如您所见,这将作为字符串排序,因此不会像您想要的那样排序。为了解决这个问题,添加另一个给出正确排序的计算字段并将其用作排序表达式,这将不同于第一个 Group 表达式:

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

    这将为您的组提供预期的顺序。将排序表达式添加到类别组或任何合适的位置。

    【讨论】:

    • @Carl,这对你有帮助吗?
    • 伊恩,是的,这很有帮助。非常感谢!
    • @Hermanator 不客气!如果答案有助于解决您的问题,请考虑将其设置为已接受:meta.stackexchange.com/questions/5234/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多