SSRS - 如何在矩阵中将日期分组到今天/昨天/周/月?

时间:2012-03-10 23:34:12

标签: sql reporting-services expression mdx

我按日期排序数据:

e.g。 地区 - 日期 - 计数
东 - 2012/01/01 - 5
西部 - 2012/01/01 - 2
东 - 2012/01/06 - 3
南 - 2012/01/07 - 3

我正在尝试创建一个Counts的总和,按照相对于今天的日期组进行分组。例如,

假设今天是2012/01/07:

  • 昨天定义为今天 - 1至今(不包括在内) 今天)
  • 周被定义为今天 - 7到今天(不包括 今天)
  • 月定义为今天 - 28至今(不包括在内) 今天)

样本数据矩阵中的输出为:

enter image description here

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

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

任何帮助都会很棒!

1 个答案:

答案 0 :(得分: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中使用类似的方法

相关问题