2

我的任务是找到特定给定日期的下一个工作日。它应该排除假期表 ( mst_holiday) 中列出的假期。我有一个程序使用解码功能来查找有连续假期或周末的下一个工作日。例如今天是 21-07-2013 星期三,如果我需要查找 5 天后它应该显示 26-07-2013,如果是节假日,它应该显示连续的非节假日。

我使用的示例解码功能如下。请帮我编写备用 sql 查询。

DECODE
   (ldate,
    laps.holidaydate, DECODE
       (ldate + 1,
        laps.holidaydate + 1, DECODE
           (ldate + 2,
            laps.holidaydate + 2,ldate+3,ldate+2),ldate+1),ldate);`
4

1 回答 1

0

执行此 3 个步骤:

1) 生成要检查的日期范围,例如:

select to_date(:start_date,'dd-mon-yyyy') + rownum -1
from all_objects
where rownum <= to_date(:end_date,'dd-mon-yyyy')-to_date(:start_date,'dd-mon-yyyy')+1

2) 选择带假期表的减表

3)选择按日期排序并获取第一条记录

将其全部放在一个 sql Select 中。

于 2013-08-21T08:54:15.040 回答