回答編集履歴

5

追記修正

2016/07/27 22:50

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -80,4 +80,4 @@
80
80
 
81
81
  列名指定のCOUNTはNULLはカウント対象外となるので、
82
82
 
83
- **COUNT(開始日時)**で事足りますね。
83
+ A.Ichiさん掲示のコードのように**COUNT(開始日時)**で事足りますね。

4

追記

2016/07/27 22:50

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -71,3 +71,13 @@
71
71
  一応月内の最終日まで表示することを考慮して月末日とは書いておりますが・・・
72
72
 
73
73
  後、**開始日、終了日の項目は時間部を切り捨てていることを前提**として書いてますので悪しからず・・・
74
+
75
+
76
+
77
+ ###追記
78
+
79
+ SQL内のSUM関数使っている所ですが、
80
+
81
+ 列名指定のCOUNTはNULLはカウント対象外となるので、
82
+
83
+ **COUNT(開始日時)**で事足りますね。

3

コードミス修正

2016/07/27 22:47

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  LEFT JOIN HOGE H
42
42
 
43
- ON M.日付 BETWEEN H.開始日 AND COALESCE(M1.終了日, 月末日)
43
+ ON M.日付 BETWEEN H.開始日 AND COALESCE(H.終了日, 月末日)
44
44
 
45
45
  GROUP BY
46
46
 

2

レイアウト修正

2016/07/27 16:03

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  SQLの結合所条件の部分は、
64
64
 
65
- 終了日時NULLを考慮して月末日を入れる形を取ってますが、
65
+ **終了日時NULLを考慮**して月末日を入れる形を取ってますが、
66
66
 
67
67
  この箇所は検索条件のTO条件と一致させても良いと思います。
68
68
 

1

コード記載ミス修正

2016/07/27 15:58

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  CASE
26
26
 
27
- WHEN M1.START_NUM IS NOT NULL
27
+ WHEN H.開始日時 IS NOT NULL
28
28
 
29
29
  THEN 1
30
30