回答編集履歴

2

追記

2019/01/23 03:54

投稿

takg
takg

スコア125

test CHANGED
@@ -9,3 +9,35 @@
9
9
  ```
10
10
 
11
11
  こんな感じでしょうか?
12
+
13
+
14
+
15
+ ### 追記 (2019/01/23)
16
+
17
+ ```SQL
18
+
19
+ SELECT MIN(date) AS start_date,
20
+
21
+ MAX(date) AS finish_date,
22
+
23
+ 休日区分,
24
+
25
+ CASE
26
+
27
+ WHEN DATE_FORMAT(date, '%M') <= 3
28
+
29
+ THEN DATE_FORMAT(date, '%Y')+1 // 1~3月の場合に+1して年度の値にする
30
+
31
+ ELSE DATE_FORMAT(date, '%Y')
32
+
33
+ END AS year_period
34
+
35
+ FROM calender
36
+
37
+ GROUP BY 休日区分, year_period;
38
+
39
+ ```
40
+
41
+ 年度の処理、これでよいのでは??
42
+
43
+ (春休みが年度を跨いでいる場合は春休みが確実に終了している日(4/20とか)より前か後かで場合分けすればよいかと)

1

書式の改善

2019/01/23 03:54

投稿

takg
takg

スコア125

test CHANGED
@@ -1,5 +1,11 @@
1
+ ```SQL
2
+
1
- SELECT MIN(date) AS start_date, MAX(date) AS finish_date, 休日区分
3
+ SELECT MIN(date) AS start_date, MAX(date) AS finish_date, 休日区分, DATE_FORMAT(date, '%Y') AS year
2
4
 
3
5
  FROM calender
4
6
 
5
- GROUP BY 休日区分;
7
+ GROUP BY 休日区分, year;
8
+
9
+ ```
10
+
11
+ こんな感じでしょうか?