teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

Q2 Null考慮

2018/05/28 03:56

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  「今月請求金額合計」については**支払済**でない今月以前の「課金記録」としています。
12
12
  ```SQL
13
13
  SELECT 会員マスター.会員番号,会員マスター.名前, Nz(入金額計)-Nz(支払済金額計) AS 預かり金額
14
- ,今月請求金額合計
14
+ , Nz(今月請求金額合計) as 今月請求金額
15
15
  FROM ((会員マスター LEFT JOIN (
16
16
  SELECT 会員番号, Sum(請求金額) AS 支払済金額計
17
17
  FROM 課金記録

1

Q2回答修正

2018/05/28 03:55

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -6,10 +6,13 @@
6
6
  但し、一部入金などのイレギュラーに対応するためには、どうしても補正的な入力は必要でしょうから変更分だけの更新処理は考慮したほうが良いかもしれません。
7
7
 
8
8
  Q2
9
-
9
+ ※ちょっと読み違えていたので修正
10
+ 「今月請求金額合計」を求めたものを結合すればよいかと思います。
11
+ 「今月請求金額合計」については**支払済**でない今月以前の「課金記録」としています。
10
12
  ```SQL
11
13
  SELECT 会員マスター.会員番号,会員マスター.名前, Nz(入金額計)-Nz(支払済金額計) AS 預かり金額
14
+ ,今月請求金額合計
12
- FROM (会員マスター LEFT JOIN (
15
+ FROM ((会員マスター LEFT JOIN (
13
16
  SELECT 会員番号, Sum(請求金額) AS 支払済金額計
14
17
  FROM 課金記録
15
18
  WHERE 支払済=TRUE
@@ -17,6 +20,13 @@
17
20
  ) AS Q支払済金額計
18
21
  ON 会員マスター.会員番号 = Q支払済金額計.会員番号
19
22
  ) LEFT JOIN (
23
+ SELECT 会員番号, Sum(請求金額) AS 今月請求金額合計
24
+ FROM 課金記録
25
+ WHERE 支払済=False and 支払期限<#2018/6/1#
26
+ GROUP BY 会員番号
27
+ ) AS Q今月請求金額合計
28
+ ON 会員マスター.会員番号 = Q今月請求金額合計.会員番号
29
+ ) LEFT JOIN (
20
30
  SELECT 会員番号, Sum(入金金額) AS 入金額計
21
31
  FROM 支払い記録
22
32
  GROUP BY 会員番号