从我的日历表中选择第10个工作日

时间:2015-07-10 07:13:35

标签: oracle date select calendar

我有一个表格,其中有2列DATE和HOLIDAY_FLAG。

DATE                    HOLIDAY_FLAG
01-JUL-2015 00.00.00    N
02-JUL-2015 00.00.00    N
03-JUL-2015 00.00.00    Y
04-JUL-2015 00.00.00    Y 
05-JUL-2015 00.00.00    Y
06-JUL-2015 00.00.00    N
07-JUL-2015 00.00.00    N
08-JUL-2015 00.00.00    N
09-JUL-2015 00.00.00    N
10-JUL-2015 00.00.00    N
11-JUL-2015 00.00.00    Y
12-JUL-2015 00.00.00    Y
13-JUL-2015 00.00.00    N
14-JUL-2015 00.00.00    N

我想在where条件中提供所需日期并获取下一个第5个工作日的日期。

Example:
Input  01-JUL-2015 00.00.00
Output 09-JUL-2015 00.00.00

这是我到目前为止所做的事情

select b.DATE + 5
from CALENDAR b
where b.DATE = '01-JUL-2015 00.00.00'
and b.HOLIDAY_FLAG is not null;

我知道这不起作用

2 个答案:

答案 0 :(得分:1)

其中一种方法是使用分析函数select d5 from ( select cal_date, lead(cal_date, 5) over (order by cal_date) d5 from calendar where holiday_flag='N') where cal_date = date '2015-07-01'

PyGTK documentation

<Drawable>:
    rectangleColor: (1,0,0,1) if self.visible else (0,0,0,0)

答案 1 :(得分:0)

我认为下面的SQL可以解决问题。你可以尝试让我知道吗?

http://sqlfiddle.com/#!4/f600d/14/0

    SELECT CAL_DATE
  FROM (SELECT CA.CAL_DATE, ROWNUM AS RECNUM FROM CALENDAR CA WHERE HOLIDAY_FLAG = 'N') ABC,
       (SELECT ROWNUM AS REQRECNUM
          FROM CALENDAR
         WHERE HOLIDAY_FLAG = 'N'
           AND CAL_DATE = DATE '2015-07-01') BBC
 WHERE ABC.RECNUM = BBC.REQRECNUM + 5