【发布时间】:2018-12-17 11:57:15
【问题描述】:
我正在尝试编写一个查询,它可以计算收到付款和处理付款之间的工作日数,我开始在 2017 年 12 月收到付款;
select unique trunc(date_received),
(case when trunc(date_received) in ('25-DEC-17','26-DEC-17') Then 0 when
to_char(date_received,'D') <6 Then 1 else 0 end) Working_day
from payments
where date_received between '01-DEC-17' and '31-dec-17'
order by trunc(date_received)
但老实说,我不知道如何进一步处理并添加 date_processed 并计算 date_processed 和 date_received 之间的工作日数......任何帮助将不胜感激......
【问题讨论】:
-
可以参考这个链接Count Work Days
-
我推荐一个日历表,有指定的工作日和非工作日。
-
并在该日历表中添加一列
workday_number,其运行编号(使用超过 1/0 的累积总和)仅在工作日增加。然后,您的计算基于此日历的两个联接(date_received和date_processed)和一个简单的t1.workday_number - t2.workday_number