2016-10-06 8 views
4

plan_tableテーブルから日付カラムに最初の欠損日付を見つける必要があります。それはholiday_tableにあってはならないか、週末に属していなければなりません。カラム(Oracle)の最初の欠損日付を見つける

holiday_tableはすべての休日の日付を保存します。

Plan_tableには日付が含まれています。ここで私たちが最初に欠落している日付に

Plan_id  Date 
1   10/2/2016 
2   10/3/2016 
3   10/6/2016 
4   10/9/2016 
5   10/10/2016 
6   10/12/2016 
7   10/13/2016 
8   10/16/2016 

を見つける必要がありここで最初の欠落している日付は2016年10月4日ですが、この日はholiday_tableであるならば、我々は2016年10月5日または次の最初の出現を示さなければなりません。

同じ質問をお寄せください。

+0

なし鷺のようLEADの分析機能を使用することができ、PLAN_TABLEは、これらの日付が含まれています。 –

答えて

1

は、あなたがこの

select d 
from 
    (
    select 
     date + 1 as d 
    from 
    (
     select 
     date, 
     lead(date) over(order by date) as next_date 
     from 
     (
      select date from plan_table 
     union 
      select date from holliday_table 
     ) 
     order by date 
    ) 
    where 
     trunc(date) + 1 < trunc(next_date) 
    order by d 
) 
    where rownum = 1 
; 
+0

ありがとうございます。私は週末に含まれます。それでも私は必要なものを手に入れました。 –

関連する問題