【发布时间】:2023-01-09 14:21:57
【问题描述】:
我正在使用在 Cognos 上运行的 Bullhorn Canvas。我正在寻找基于此下拉列表提示的查询过滤器的最简单方法:
本星期
上个星期
这个月
上个月
本季度
上一季度
今年迄今为止
该报告需要许多带有日期过滤器的查询。据我所知,我必须在每个查询中编写如下所示的过滤器:
[开始日期] 之间
(案例?日期下拉列表?
当 'THISWEEK' 然后 _add_days(current_date, -_day_of_week(current_date, 1) + 1)
当“上周”然后 _add_days(current_date, -_day_of_week(current_date, 1) - 6)
当 'THISMONTH' 然后 _first_of_month(current_date)
结尾)
和
(案例?日期下拉列表?
当 'THISWEEK' 然后 _add_days(current_date, -_day_of_week(current_date,1) + 7)
当“上周”然后 _add_days(current_date, -_day_of_week(current_date,1))
当 'THISMONTH' 然后 _last_of_month(current_date)
当 'LASTMONTH' 然后 _last_of_month(_add_months(current_date, -1))
结尾)
这实际上是缩短了。真正的过滤器会比这更大。
据我所知,我必须在每个查询中重复这个可怕的过滤器,我想避免这种情况。在其他编程语言中,我会创建两个变量,例如 Date1 和 Date2。我会根据下拉列表计算一次这些变量。然后每个查询都会简单地说 [StartDate] 在 [Date1] 和 [Date2] 之间。
有没有办法在 Cognos 中做到这一点?
【问题讨论】:
-
你有框架管理器吗?可能有适合您的巧妙解决方案
-
我没有框架管理器。我正在为一个拥有基于 Cognos 的招聘软件 Bullhorn Canvas 的客户做一个项目。客户端没有 Framework Manager。
-
你有代表时间的表格,即年、季度、月吗?如果是这样,你可以加入它。内部联接将充当过滤器。如果您有类似的东西,请告诉我,或者您的 DBA 可以创建一个。如果是这样,我可能有您想要的解决方案
-
我没有时间段的表格,但也许我可以在 Bullhorn 中运行报告时在查询中即时创建一个。这是否适合您想到的解决方案?
-
想多了一点,可能有更简单的解决方案。下拉 This week 给出了所有查询的起始日期和截止日期(即 1/2 到 1/6)。如果我们选择这个月,则从和到日期可能是 1/1 到 1/31。只要你得到一个起始日期和截止日期作为参数就可以满足要求吗?