我一直在研究这个问题,我在网上找不到太多帮助,所以希望有人可以提供帮助。
我正在使用Cognos 8.4.1和SQL Server作为数据源。我有一个日期字段,可以保存日期和时间。
我们的客户希望看到整个一周按周分列的报告,但周日从星期日开始,而不是星期一。为了增加复杂性,我需要将日期范围显示为数据标签。
所以例如交叉表的标题看起来像下面的突破,每列的总数。
第1周/第5-1 / 11周| 1 / 12-1 / 18 | 1 / 19-1 / 25 | 1 / 25-2 / 1 |
感谢任何帮助,谢谢!
答案 0 :(得分: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的本机函数,它无法正常工作。
感谢大家的意见!