【问题标题】:How do I create a interval of 7 days without 'w','week' or 'WeekOfYear'?如何在没有“w”、“week”或“WeekOfYear”的情况下创建 7 天的间隔?
【发布时间】:2015-10-16 12:40:31
【问题描述】:

我正在尝试按数据的创建周对数据进行排序。我不能在DateAdd、'week' 或'WeekOfYear' 中使用'w',而不会出现说明函数/表达式不可访问的错误。

创建替代表达式的最佳方法是什么?我希望表达式根据创建的星期对日期进行分组。

我正在尝试复制这个: http://imgur.com/Pk8YjUv

【问题讨论】:

  • 您需要按计算周数排序或分组吗?我怀疑您的问题与分组不计算周数有关。分享您的数据集示例,以及您想要展示的预期表格、矩阵或组件,以便我们可以帮助您
  • 抱歉 - 我需要按周数分组。我的数据集包含一个 created on 字段,我想根据它们的创建周对实体进行分组。我想显示一个包含“以 结束的星期”的列,该列包含按周对日期进行分组并显示该星期五的日期的表达式。
  • 我有一个你需要的草图,但我不确定,你应该更新你的问题并添加示例数据集和预期结果。
  • @alejandrozuleta 我用一个示例链接更新了问题

标签: sql-server-2008 date reporting-services parameters bids


【解决方案1】:

根据您在问题版本中发布的预期结果,我复制了 tablix。

我使用了以下数据集:

我假设您要使用 tablix 组件,所以我添加了这个组件,并使用以下数据排列。

在Row Groups 面板中右键单击date 组。

在组属性中,添加组表达式并设置:

=DATEADD("d",7-DATEPART(DateInterval.Weekday,Fields!date.Value),Fields!date.Value)

同样在 tablix 中你必须设置相同的表达式:

在要求和的列中,您可以使用 Sum 函数或任何聚合函数。我在同一周内使用=Sum(Fields!value.Value) 对值求和。

这是它将预览的结果:

如果这有帮助,请告诉我。

【讨论】:

  • 谢谢!但是,当我根据“=DATEADD("d",7-DATEPART(DateInterval.Weekday,Fields!date.Value),Fields!date.Value)”创建分组时,我收到错误“tablix 的 GroupExpression 表达式” table1' 包含一个错误:[BC30455] Argument not specified for parameter 'DateValue' of 'Public Function Day(DateValue As Date) As Integer'。我对上述代码所做的唯一编辑是添加我的字段名称。所以它显示"=DATEADD("d",7-DATEPART(DateInterval.Weekday,Fields!createdon.Value),Fields!createdon.Value)"
  • 您的查询如何检索日期? varchar 或 date 类型?我认为这是您的数据源的问题。尝试将日期列转换为正确的date 类型。
  • 抱歉,我不确定如何检查。我是报告服务的新手
  • 对于测试删除所有表达式 =DATEADD("d",7-DATEPART(DateInterval.Weekday,Fields!date.Value),Fields!date.Val‌​ue) 出现,并在 tablix 的任何单元格中输入:=DATEADD("d",7-DATEPART(DateInterval.Weekday,Today()),Today())。如果错误仍然存​​在,请告诉我
  • 好的,我删除了前面的表达式,并在 tablix 中的一个单元格中添加了“=DATEADD("d",7-DATEPART(DateInterval.Weekday,Today()),Today())"。我仍然收到错误消息。
猜你喜欢
  • 2020-07-09
  • 2023-04-01
  • 2017-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-19
  • 1970-01-01
  • 2011-01-28
相关资源
最近更新 更多