【问题标题】:Creating a table reports with WTD使用 WTD 创建表格报告
【发布时间】:2020-01-01 10:18:30
【问题描述】:

如何创建报表中集成 WTD 的表格报表。例如

我能想到的一些选项是创建一个返回临时表的 sp,在 sp 内部是一个循环,每周它将插入该周的 wtd 总计。另一个是是否可以在报告服务中实现。到目前为止,这些都没有运气。

【问题讨论】:

  • 嗨,在 SQL Server 中获取每个日期的周数,然后创建一个该周数的组,并将同一组的总数相加。
  • 然后在临时表中每7天插入一次wtd?
  • 不需要这样做,只需创建一组周数。
  • 我应该在哪里创建它?在 sp 中还是在 ssrs 中?
  • 我应该在哪里创建它?在 sp 中还是在 ssrs 中? - 在 SSRS 中。

标签: sql sql-server reporting-services ssrs-2012


【解决方案1】:

您可以使用grouping sets 和order by。你没有展示你的数据是什么样的,但想法是:

select date, sum(sales), sum(orders)
from t
group by grouping sets ( (date), (year(date), datepart(week, date)) )
order by max(date), grouping(date);

Here 是一个 dbfiddle。

注意:这会忽略“WTD”,因为那是一个字符串,您似乎想将它放在 date 列中。

您可以将日期转换为字符串并使用coalece()(或使用grouping() 的case 逻辑):

select coalesce(convert(varchar(255), date), 'WTD'),

Here 是一个 dbfiddle。

【讨论】:

  • 谢谢您,先生!这非常有帮助。但是,我在订购上迷路了。如何将 wtd 组集放入日期组集中。提前致谢。
  • @user7414008 。 . .这会按照问题中指定的顺序进行排序。我包括了一个 dbfiddle.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-02
  • 1970-01-01
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多