我一直在研究这个问题,但我在网上找不到太多可以帮助的东西,所以希望有人能提供帮助。
我使用 Cognos 8.4.1 和 SQL Server 作为数据源。我有一个包含日期和时间的日期字段。
我们的客户希望看到全年按周细分的报告,但该周从周日开始,而不是周一。为了增加复杂性,我需要将日期范围显示为数据标签。
例如,交叉表的标题看起来像下面的突破,每列中的总数。
1/5-1/11 周 | 1/12-1/18 | 1/19-1/25 | 1/25-2/1 |
任何帮助表示赞赏,谢谢!
因此,理想的方法实际上是拥有一个包含日历数据的表格,以便正确执行此操作。这不是我可以在一夜之间添加到我们的 Cognos 环境中的东西,所以在此期间我想出了一个临时解决方案。我没有显示周范围,而是显示每周(星期日)的开始。
我创建了一个名为 [DayOfWeek] 的新数据元素:
_day_of_week([mydatefield], 7)
然后我创建了另一个名为 [StartOfWeek] 的数据元素:
cast(CASE [DayofWeek]
WHEN 1 THEN [mydatefield]
ELSE _add_days([mydatefield], -1 * ([DayofWeek] - 1))
END,date)
我最大的挑战是使用 add days 函数,因为我从 DATEADD 开始,它是 SQL 的本机函数,但它不起作用。
谢谢各位的意见!