我有这个问题:
select dates,To_char(dates,'DAY') DAYs FROM
(
select trunc(ADD_MONTHS(sysdate,-1),'MM') + level -1 Dates from dual connect by
level <= ADD_MONTHS(trunc(sysdate,'MM'),1)-1 - trunc(sysdate,'MM')+1
) Where To_char(dates,'DY') NOT IN ('SA','SO')
上面查询的输出是:
01.05.2015 FREITAG
04.05.2015 MONTAG
05.05.2015 DIENSTAG
06.05.2015 MITTWOCH
07.05.2015 DONNERSTAG
08.05.2015 FREITAG
11.05.2015 MONTAG
12.05.2015 DIENSTAG
13.05.2015 MITTWOCH
14.05.2015 DONNERSTAG
15.05.2015 FREITAG
18.05.2015 MONTAG
19.05.2015 DIENSTAG
20.05.2015 MITTWOCH
21.05.2015 DONNERSTAG
22.05.2015 FREITAG
25.05.2015 MONTAG
26.05.2015 DIENSTAG
27.05.2015 MITTWOCH
28.05.2015 DONNERSTAG
29.05.2015 FREITAG
我没想到这个输出。相反,我想计算所有这些日子(21),这应该是我唯一的输出。
最终结果应为:
DAYS
--
21
答案 0 :(得分:1)
select count(*) DAYs FROM
(
select trunc(ADD_MONTHS(sysdate,-1),'MM') + level -1 Dates from dual connect by
level <= ADD_MONTHS(trunc(sysdate,'MM'),1)-1 - trunc(sysdate,'MM')+1
) Where To_char(dates,'DY') NOT IN ('SA','SO')