服务年限周年纪念公式-Cognos Analytics-Costpoint 8.0.0



这个已经困扰我几个星期了。。。我试图在Cognos Analytics(costpoint(中编写一个公式,如果有人在实际月份达到新的服务年份里程碑,就会返回该公式。

返回一个简单的";真/假";或";是/否";是完美的

基本上,这只是如果他们的服务年限在多个日期范围之间(例如:我希望目前服务年限为4.95年的人的回报值为"是",因为他们将在下个月达到5年(

  • 服务年限以数字格式显示在";A";excel和costpoint(cognos(的[服务年限]栏(例如:9.154、4.982、24.995…(

我有一个Excel版本可以工作,如下所示:

  • =IF(OR(AND(A1>4.91,A1<=5;是"否"(

我仍然只是熟悉Cognos(costpoint(语法,所以我尝试如下所示编写它:

  • 如果(或(和[服务年限]>4.91,[服务年限]-lt;5(,(和([服务年限]>14.91,[工作年限]<15(((,则('yes'(否则('ull'(

没有任何运气。。。

有人想试试吗?:(

在没有开始日期的情况下,这会更容易,并处理更一般的情况(如果他们即将服役45年怎么办?(:

case
  when MOD(MOD([Years Of Service], 5) + 1, 5) > 0.91
   and MOD(MOD([Years Of Service], 5) + 1, 5) <= 1
    then 'yes'
  else 'no'
end

看看谁达到了一个";服务年限";下个月是5年里程碑的值,创建一个过滤器:

mod(
    _months_between (
        _first_of_month (
            _add_months (current_date, 1)
        ), 
        _first_of_month ([StartDate])
    ), 
    60
) = 0

但如果你有服务开始日期,你可以使用日期计算来查看谁在下个月达到5年里程碑:

mod(
    _months_between (
        _first_of_month (
            _add_months (current_date, 1)
        ), 
        _first_of_month ([StartDate])
    ), 
    60
)

查看各种case函数,并在表达式中尝试它们。

我认为您不需要开始日期,您可以只关注服务年限字段的小数部分。你知道,如果小数部分等于或大于9166,那么服务年限在最后一个月。

if ([YOS]-cast([YOS],integer)>=0.9166)
then
('Yes')
else
('No')

如果你想计算一个重要的里程碑年,比如5、10、15,那么你可以更进一步。

if mod(
    if ([YOS]-cast([YOS],integer)>=0.9166)
    then
    (cast([YOS],integer)+1)
    else
    (cast([YOS],integer)),5=0)
then ('Milestone Year')
else ('Keep on Working!')

希望以上内容能有所帮助!

相关内容

  • 没有找到相关文章

最新更新