回答編集履歴

4

訂正

2018/09/13 22:52

投稿

nullpon
nullpon

スコア5737

test CHANGED
File without changes

3

訂正

2018/09/13 22:52

投稿

nullpon
nullpon

スコア5737

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
  WHERE
78
78
 
79
- 費目総額合計 >= 支払金額合計
79
+ 費目総額合計 <= 支払金額合計
80
80
 
81
81
  AND 請求金額合計 = 0
82
82
 

2

訂正

2018/09/13 22:47

投稿

nullpon
nullpon

スコア5737

test CHANGED
@@ -2,55 +2,83 @@
2
2
 
3
3
  ```SQL
4
4
 
5
+
6
+
5
7
  SELECT
6
8
 
7
- m.会員番号
9
+ 会員番号
8
10
 
9
- ,m.氏名
11
+ ,氏名
10
12
 
11
- ,m.ふりがな
13
+ ,ふりがな
12
14
 
13
- ,m.費目1総額 + m.費目2総額 + .. + m.費目15総額 AS 費目総額合計
15
+ ,費目総額合計
14
16
 
15
- ,SUM(k.金額) AS 支払金額合計
17
+ ,支払金額合計
16
18
 
17
- ,SUM(k2.金額) AS 請求金額合計
19
+ ,請求金額合計
18
20
 
19
21
  FROM
20
22
 
21
- 会員マスター AS m INNER JOIN 課金記録 AS k ON
23
+ (SELECT
22
24
 
23
- m.会員番号 = k.会員番号
25
+ m.会員番号
24
26
 
25
- INNER JOIN 課金記録 k2 ON
27
+ ,m.氏名
26
28
 
29
+ ,m.ふりがな
30
+
31
+ ,(m.費目1総額 + m.費目2総額 + m.費目3総額 + m.費目4総額 + m.費目5総額
32
+
33
+ + m.費目6総額 + m.費目7総額 + m.費目8総額 + m.費目9総額 + m.費目10総額
34
+
35
+ + m.費目11総額 + m.費目12総額 + m.費目13総額 + m.費目14総額 + m.費目15総額) AS 費目総額合計
36
+
37
+ ,SUM(k.金額) AS 支払金額合計
38
+
39
+ ,SUM(k2.金額) AS 請求金額合計
40
+
41
+ FROM
42
+
43
+ (会員マスター AS m INNER JOIN 課金記録 AS k ON
44
+
45
+ m.会員番号 = k.会員番号)
46
+
47
+ INNER JOIN 課金記録 AS k2 ON
48
+
27
- m.会員番号 = k2.会員番号
49
+ m.会員番号 = k2.会員番号
50
+
51
+ WHERE
52
+
53
+ m.氏名 <> '削除済'
54
+
55
+ AND m.完済 = False
56
+
57
+ AND k.費目番号 <= 15
58
+
59
+ AND k2.支払済 = False
60
+
61
+ GROUP BY
62
+
63
+ m.会員番号
64
+
65
+ ,m.氏名
66
+
67
+ ,m.ふりがな
68
+
69
+ ,(m.費目1総額 + m.費目2総額 + m.費目3総額 + m.費目4総額 + m.費目5総額
70
+
71
+ + m.費目6総額 + m.費目7総額 + m.費目8総額 + m.費目9総額 + m.費目10総額
72
+
73
+ + m.費目11総額 + m.費目12総額 + m.費目13総額 + m.費目14総額 + m.費目15総額)
74
+
75
+ )
28
76
 
29
77
  WHERE
30
78
 
31
- m.氏名 <> '削除済'
79
+ 費目総額合計 >= 支払金額合計
32
80
 
33
- AND m.完済 = False
34
-
35
- AND k.費目番号 <= 15
36
-
37
- AND k2.支払済 = False
38
-
39
- GROUP BY
40
-
41
- m.会員番号
42
-
43
- ,m.氏名
44
-
45
- ,m.ふりがな
46
-
47
- ,m.費目1総額 + m.費目2総額 + .. + m.費目15総額 AS 費目総額合計
48
-
49
- HAVING
50
-
51
- 費目総額合計 >= 支払金額合計
52
-
53
- AND 請求金額合計 = 0
81
+ AND 請求金額合計 = 0
54
82
 
55
83
  ```
56
84
 

1

追記

2018/09/13 22:41

投稿

nullpon
nullpon

スコア5737

test CHANGED
@@ -53,3 +53,11 @@
53
53
  AND 請求金額合計 = 0
54
54
 
55
55
  ```
56
+
57
+
58
+
59
+ > あるいは、このように、まずは複数のSQLを作ってから頑張ってまとめようとする方法は間違ってるのでしょうか?
60
+
61
+
62
+
63
+ SQLは集合演算なので、まずは全部入りのテーブルを作って条件で絞り込んでいくのが良いと思います。