SSRS 2008 R2报告。从日历月更改月份分组

时间:2016-11-09 11:28:40

标签: sql-server-2008 reporting-services ssrs-2008 ssrs-2008-r2

我有一份报告输出相对简单的客户数。它输出系统中的所有内容,因为不需要数据参数。他们想要看到一切。

抛出我的是,他们希望在一个月的第24天到下个月的第23个月分组。

例如,2016年10月应计算2016年10月24日至2016年11月23日之间的所有数据,之前的Septeber应在2016年9月24日至2016年10月23日之间进行分组等。

简而言之,是否有可能将该月的24日分组到下个月的23日?

很高兴为这样的高级ssrs任务提供更多信息。我确实在寻找这样的解决方案但却找不到合适的解决办法。任何帮助非常感谢。

1 个答案:

答案 0 :(得分:1)

可以通过增强查询来实现此要求。比如说,你有以下几点:

select
  t.Date,
  t.AggregatedField
from SomeSchema.SomeTable as t

你可以做下一个:

select
  MonthNumber = 
    case 
      when DATEPART(DAY, t.Date) >= 24 then DATEPART(MONTH, t.Date)
      else DATEPART(MONTH, t.Date) - 1
    end,
  t.AggregatableField
from SomeSchema.SomeTable as t

您将获得的输出将类似于(month_number, field_to_aggregate)。然后,您需要按month_number对数据进行分组,您可以直接在SQL中执行此操作,或使用RDL报表分组(首先考虑提供最佳性能)。 要构建月份名称,您可能需要提取年份编号,如下所示:

DATEPART(YEAR, t.Date)

然后使用月号anhd年号来构建日期。