質問編集履歴

3

typo

2016/07/27 07:47

投稿

hos
hos

スコア33

test CHANGED
File without changes
test CHANGED
@@ -88,7 +88,7 @@
88
88
 
89
89
  "2016-04-05", 1 //1のデータは23:59:59には終了していて2のデータのみ
90
90
 
91
- "2016-04-05", 1 //2のデータのみ
91
+ "2016-04-06", 1 //2のデータのみ
92
92
 
93
93
  ```
94
94
 
@@ -96,7 +96,7 @@
96
96
 
97
97
  ```SQL
98
98
 
99
- SELECT 日付 FROM 日付マスタ WHERE 日付 BETWEEN '2016-04-01' AND '2016-04-05'
99
+ SELECT 日付 FROM 日付マスタ WHERE 日付 BETWEEN '2016-04-01' AND '2016-04-06'
100
100
 
101
101
  ```
102
102
 

2

結果セットの例示。

2016/07/27 07:47

投稿

hos
hos

スコア33

test CHANGED
File without changes
test CHANGED
@@ -53,3 +53,55 @@
53
53
 
54
54
 
55
55
  ループさせるのではなくSQLで解決させるにはどうすればよいでしょうか?
56
+
57
+
58
+
59
+ どのような結果が欲しいか追記します。
60
+
61
+
62
+
63
+ たとえば、下記のようなレコードがあった場合
64
+
65
+ ```
66
+
67
+ ID,開始日時,終了日時
68
+
69
+ 1,"2016-04-02 01:00:00","2016-04-05 01:00:00"
70
+
71
+ 2,"2016-04-04 01:00:00",NULL
72
+
73
+ ```
74
+
75
+ 結果としては
76
+
77
+ ```
78
+
79
+ 日付,件数
80
+
81
+ "2016-04-01", 0 //1件もない
82
+
83
+ "2016-04-02", 1 //1のデータのみ
84
+
85
+ "2016-04-03", 1 //1のデータのみ
86
+
87
+ "2016-04-04", 2 //1と2のデータ
88
+
89
+ "2016-04-05", 1 //1のデータは23:59:59には終了していて2のデータのみ
90
+
91
+ "2016-04-05", 1 //2のデータのみ
92
+
93
+ ```
94
+
95
+ といった感じになります。日付のところは、上記の例だと
96
+
97
+ ```SQL
98
+
99
+ SELECT 日付 FROM 日付マスタ WHERE 日付 BETWEEN '2016-04-01' AND '2016-04-05'
100
+
101
+ ```
102
+
103
+ というように取り出せます。
104
+
105
+
106
+
107
+ わかりにくくて申し訳ありませんがよろしくお願いいたします。

1

日付マスタの使い方について修正。

2016/07/27 07:45

投稿

hos
hos

スコア33

test CHANGED
File without changes
test CHANGED
@@ -48,7 +48,7 @@
48
48
 
49
49
 
50
50
 
51
- 日付マスタのようなものはあるので、そこで1ヶ月分の日付をSELECTることは可能です。
51
+ 日付マスタのようなものはあるので、そこで1ヶ月分の日付のリスト作成し、LEFT OUTER JOIN させようなことを考えています。
52
52
 
53
53
 
54
54