【问题标题】:SSRS - How to group Date into Today/Yesterday/Week/Month in a Matrix?SSRS - 如何在矩阵中将日期分组为今天/昨天/周/月?
【发布时间】:2012-03-10 23:34:12
【问题描述】:

我有按日期排序的数据:

例如 地区 - 日期 - 计数
东 - 2012/01/01 - 5
西 - 2012/01/01 - 2
东 - 2012/01/06 - 3
南 - 2012/01/07 - 3
等等

我正在尝试创建计数的总和,按相对于今天的日期组分组。比如

假设今天是 2012/01/07:

  • 昨天定义为从今天 - 1 到今天(不包括 今天)
  • 周定义为从今天 - 7 到今天(不包括 今天)
  • 月份定义为从今天 - 28 日到今天(不包括 今天)

样本数据在矩阵中的输出将是:

作为奖励,理想情况下,我会有一个用于“按需”开始和结束日期范围的第 5 列供用户输入。

我认为关键是在 Column Group 的 Group On 属性中添加一个 EXPR,但我不知道 Expression 应该是什么。

任何帮助都会很棒!

【问题讨论】:

    标签: sql reporting-services expression mdx


    【解决方案1】:

    我个人认为我更愿意在 SQL 查询中攻击它。比如

    SELECT 
     CASE WHEN DATEDIFF(day, GETDATE(), DateColumn) = 0 THEN SomeColumn ELSE 0 END cToday
     CASE WHEN DATEDIFF(day, GETDATE(), DateColumn) = 1 THEN SomeColumn ELSE 0 END cYesterday
     CASE WHEN DATEDIFF(day, GETDATE(), DateColumn) > 0 AND 
               DATEDIFF(day, GETDATE(), DateColumn) < 8 THEN SomeColumn ELSE 0 END cWeek
     CASE WHEN DATEDIFF(day, GETDATE(), DateColumn) > 0 THEN SomeColumn ELSE 0 END cMonth
    FROM 
     SomeTable
    WHERE 
     DateColumn > DATEADD(day, -28, GETDATE())
    

    否则你可以在 SSRS 中使用类似的方法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-30
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多