2013-05-21 245 views
1

在完成以下查詢之後,我們將缺少天,現在我想添加額外的過濾器,即如果任何顯示的日期與下面的查詢是星期六和星期日它必須刪除這些日期,所以這些日期應該不會顯示任何人都可以指導我如何擴展此篩選器在下面的查詢.. 下面的查詢我從這個論壇得到,但隨着這個查詢我需要一些查詢,這將滿足我上述問題。請幫助我如何修改這個查詢需要Oracle查詢幫助

with date_range as (
    select min(the_date) as oldest, 
     max(the_date) as recent, 
     max(the_date) - min(the_date) as total_days 
    from your_table 
), 
    all_dates as (
    select oldest + level - 1 as a_date 
    from date_range 
    connect by level <= (select total_days from date_range) 
    ) 
    select ad.a_date 
    from all_dates ad 
    left join your_table yt on ad.a_date = yt.the_date 
    where yt.the_date is null 
    order by ad.a_date; 
+1

「max(the_date) - min(the_date)as total_days」不包括在內 - 如果從1月1日到2月1日的total_days被假定爲「2」,則對此加1。 –

回答

0

添加條件:

and to_char(ad.a_date, 'Dy') not in ('Sat','Sun') 

- 您where條款。

+1

更好的是這樣'to_char(ad.a_date,'Dy','NLS_DATE_LANGUAGE = ENGLISH')'否則它可能無法用於不同的NLS_DATE_FORMATs http://www.sqlfiddle.com/#!4/d41d8/11183 –

+0

好的,非常感謝.. – user1625419