2015-02-09 106 views

回答

0

您可以使用ROW發電機技術,先產生一個給定範圍的日期,再算上只有週六和週日

例如,該查詢會給我週六和週日的總數2014年1月1日和2014年12月31日之間 -

SQL> WITH DATA AS 
    2 (SELECT to_date('01/01/2014', 'DD/MM/YYYY') date1, 
    3  to_date('31/12/2014', 'DD/MM/YYYY') date2 
    4 FROM dual 
    5 ) 
    6 SELECT SUM(holiday) holiday_count 
    7 FROM 
    8 (SELECT 
    9  CASE 
10  WHEN TO_CHAR(date1+LEVEL-1, 'DY','NLS_DATE_LANGUAGE=AMERICAN') IN ('SAT', 'SUN') 
11  THEN 1 
12  ELSE 0 
13  END holiday 
14 FROM data 
15  CONNECT BY LEVEL <= date2-date1+1 
16 ) 
17/

HOLIDAY_COUNT 
------------- 
      104 

SQL> 
+0

不客氣。如果它已解決您的問題,請將其標記爲已回答。 – 2015-02-09 10:19:35

+0

@VishwanthGoud請將其標記爲已回答,以幫助他人。 – 2015-05-29 08:47:23

相關問題