根据Spotfire中的ID计算时差

时间:2017-05-06 15:12:42

标签: spotfire

大家好,            我是Spotfire的新手,所以如果有人能指出我正确的方向,那就太棒了。 我有一个具有各种状态的请求ID(主键),并希望找到某些特定状态(例如,提交的请求与已批准的请求)之间的时间差异。除此之外,我想从计算中取消非工作日(周末休息)(如果请求是在星期五提交并在下周一批准,那么差异应该只是1天而不是3天)。

我的数据表结构如下:

Data Table

非常感谢任何帮助/方向!

谢谢,

更新

我期待的输出将如下所示。对于身份证。 101,提交日期是4月26日,批准日期是5月1日,所以我们从计算中取消周末,同样对于ID 103,请求在周末完成,因此时间花费为0而对于102,我们计算总时间工作日过去了。

Output

1 个答案:

答案 0 :(得分:0)

问题分为两部分:

1。匹配不同行的日期

插入新的计算栏([批准日期])
Max(If([Payment_status_code]="STS_APPROVED",[CREATE_TIMESTAMP],null)) OVER ([PAYMENT_REQUEST_ID])
这会将批准的日期添加到每一行。

2。计算工作天数

(我刚刚在here#之间复制了公式,并根据需要替换了列名称。

If([Payment_status_code]="STS_RECEIVED",#if(dayofyear([START DATE])=dayofyear([END DATE]),0,(Integer(DateDiff("day",[START DATE],[END DATE]) / 7) * 5) + DayOfWeek([END DATE]) - DayOfWeek([START DATE]) + (if((DayOfWeek([END DATE]) - DayOfWeek([START DATE]))<0,5,0)))#,null)