回答編集履歴

2

sql修正

2019/01/23 03:02

投稿

退会済みユーザー
test CHANGED
@@ -13,6 +13,8 @@
13
13
  ```SQL
14
14
 
15
15
  WITH THIS_YEAR AS (
16
+
17
+
16
18
 
17
19
  SELECT
18
20
 
@@ -34,45 +36,45 @@
34
36
 
35
37
  WHERE
36
38
 
37
-
38
-
39
- date BETWEEN TO_DATE(CONCAT(TO_CHAR(SYSDATE, 'YYYY'),'/03/01'))
40
-
41
- AND TO_DATE(CONCAT(TO_CHAR(ADD_MONTHS(SYSDATE,12), 'YYYY'),'/03/01')) --今年3月~翌年3月
39
+ date BETWEEN TO_DATE(CONCAT(TO_CHAR(SYSDATE, 'YYYY'),'/03/01')) AND TO_DATE(CONCAT(TO_CHAR(ADD_MONTHS(SYSDATE,12), 'YYYY'),'/03/01')) --今年3月~翌年3月
42
40
 
43
41
  GROUP BY 休日区分
44
42
 
43
+
44
+
45
45
  ), NEXT_YEAR AS (
46
-
47
- SELECT
48
-
49
- MIN(CASE WHEN 休日区分 = '春休み' THEN date ELSE NULL END) AS SPRING_MIN_DATE --春休み開始日
50
-
51
- ,MAX(CASE WHEN 休日区分 = '春休み' THEN date ELSE NULL END) AS SPRING_MAX_DATE --春休み終了日
52
-
53
- ,MIN(CASE WHEN 休日区分 = '夏休み' THEN date ELSE NULL END) AS SUMMAR_MIN_DATE --夏休み開始日
54
-
55
- ,MAX(CASE WHEN 休日区分 = '夏休み' THEN date ELSE NULL END) AS SUMMAR_MAX_DATE --夏休み終了日
56
-
57
- ,MIN(CASE WHEN 休日区分 = '冬休み' THEN date ELSE NULL END) AS WINTER_MIN_DATE --冬休み開始日
58
-
59
- ,MAX(CASE WHEN 休日区分 = '冬休み' THEN date ELSE NULL END) AS WINTER_MAX_DATE --冬休み終了日
60
-
61
- FROM
62
-
63
- calender
64
-
65
- WHERE
66
46
 
67
47
 
68
48
 
69
- date BETWEEN TO_DATE(CONCAT(TO_CHAR(ADD_MONTHS(SYSDATE,12), 'YYYY'),'/03/01'))
49
+ SELECT
70
50
 
51
+ MIN(CASE WHEN 休日区分 = '春休み' THEN date ELSE NULL END) AS SPRING_MIN_DATE --春休み開始日
52
+
53
+ ,MAX(CASE WHEN 休日区分 = '春休み' THEN date ELSE NULL END) AS SPRING_MAX_DATE --春休み終了日
54
+
55
+ ,MIN(CASE WHEN 休日区分 = '夏休み' THEN date ELSE NULL END) AS SUMMAR_MIN_DATE --夏休み開始日
56
+
57
+ ,MAX(CASE WHEN 休日区分 = '夏休み' THEN date ELSE NULL END) AS SUMMAR_MAX_DATE --夏休み終了日
58
+
59
+ ,MIN(CASE WHEN 休日区分 = '冬休み' THEN date ELSE NULL END) AS WINTER_MIN_DATE --冬休み開始日
60
+
61
+ ,MAX(CASE WHEN 休日区分 = '冬休み' THEN date ELSE NULL END) AS WINTER_MAX_DATE --冬休み終了日
62
+
63
+ FROM
64
+
65
+ calender
66
+
67
+ WHERE
68
+
71
- AND TO_DATE(CONCAT(TO_CHAR(ADD_MONTHS(SYSDATE,24), 'YYYY'),'/03/01')) --翌年3月~翌々年3月
69
+ date BETWEEN TO_DATE(CONCAT(TO_CHAR(ADD_MONTHS(SYSDATE,12), 'YYYY'),'/03/01')) AND TO_DATE(CONCAT(TO_CHAR(ADD_MONTHS(SYSDATE,24), 'YYYY'),'/03/01')) --翌年3月~翌々年3月
72
70
 
73
71
  GROUP BY 休日区分
74
72
 
73
+
74
+
75
75
  )
76
+
77
+
76
78
 
77
79
  SELECT * FROM THIS_YEAR
78
80
 

1

sql修正

2019/01/23 03:02

投稿

退会済みユーザー
test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  AND TO_DATE(CONCAT(TO_CHAR(ADD_MONTHS(SYSDATE,12), 'YYYY'),'/03/01')) --今年3月~翌年3月
42
42
 
43
-
43
+ GROUP BY 休日区分
44
44
 
45
45
  ), NEXT_YEAR AS (
46
46
 
@@ -70,7 +70,7 @@
70
70
 
71
71
  AND TO_DATE(CONCAT(TO_CHAR(ADD_MONTHS(SYSDATE,24), 'YYYY'),'/03/01')) --翌年3月~翌々年3月
72
72
 
73
-
73
+ GROUP BY 休日区分
74
74
 
75
75
  )
76
76