我只需要计算两个字段之间的工作日。下面的语句有效,但是我只需要它来计算工作日(M-F)。不确定该怎么做。
Select
TRUNC(HF.ACTUL_DSCHRG_DTTM) - TRUNC(HF.ACTUL_ADMIS_DTTM) AS DAYS
from Table1
答案 0 :(得分:1)
通过自然断点通常可以最轻松地解决此类问题。在这种情况下,自然断点是ISO周的开始。您可以将trunc
与iw
格式模型一起使用以截断此类自然点。
如果trunc(discharge_dttm)
和trunc(admission_dttm)
都是星期一的午夜,则计算很简单:从出院日期中减去入院日期,除以7再乘以5。
如果出院日期不是星期一,请先计算出M-F,直到出院周的星期一,然后再加上直到出院的M-F天。就是这样
least(5, trunc(discharge_dttm) - trunc(discharge_dttm, 'iw'))
同样,您可以计算入学周星期一至实际入学日期之间的M-F天。
最后,将所有内容放在一起。公式整齐地分为三个部分:
(trunc(discharge_dttm, 'iw') - trunc(admission_dttm, 'iw')) * 5 / 7 +
least(5, trunc(discharge_dttm) - trunc(discharge_dttm, 'iw')) -
least(5, trunc(admission_dttm) - trunc(admission_dttm, 'iw'))
(请注意,显然,第一个“星期一调整”已添加,但第二个已减去!)