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

質問編集履歴

2

初心者アイコン

2016/05/12 01:42

投稿

NK1994
NK1994

スコア11

title CHANGED
File without changes
body CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
  地区コード,買上点数1,買上点数2,買上金額1,買上金額2
36
36
  00001 4468.00 11926.00 447220.00 2480676.00
37
- 00005 0.00 NULL 0.00 NULL
37
+ 00005 0.00 NULL 0.00 NULL
38
38
  99999 50.00 NULL 5000.00 NULL
39
39
 
40
40
  この結果を正しいものを表示させたいです。

1

試したことと、表示結果を追記

2016/05/12 01:42

投稿

NK1994
NK1994

スコア11

title CHANGED
File without changes
body CHANGED
@@ -1,14 +1,15 @@
1
1
  ###前提・実現したいこと
2
2
  はじめまして、sqlserver 初心者です。
3
3
  今サブクエリを勉強しているのですが、FROM句だけは別名をつけてJOINしなければならないので難しいです。
4
- 実現したいこととしては、地区コードごとの買取点数と買取金額を日付ごとに表示がしたいです。
4
+ 実現したいこととしては、地区コードごとの買取点数と買取金額を日付ごとに表示がしたいです。(FROM句内にサブクエリを使用して)
5
5
 
6
6
  表示結果としては↓を目指しています。
7
7
 
8
+
8
9
  地区コード,買上点数1,買上点数2,買上金額1,買上金額2
9
- 00001 ~ ~
10
+ 00001 17.00 37.00 1705.00 7538.00
10
- 00005 ~ ~
11
+ 00005 0.00 NULL 0.00 NULL
11
- 99999 ~ ~
12
+ 99999 5.00 NULL 500.00 NULL
12
13
 
13
14
 
14
15
  ###発生している問題・エラーメッセージ
@@ -32,13 +33,15 @@
32
33
  下の日付ごとのコードを入力すると地区ごとより大きな値が出てきてしまいます。
33
34
 
34
35
  地区コード,買上点数1,買上点数2,買上金額1,買上金額2
35
- 00001 4468.00 11926.00 447220.00 2480676.00
36
+ 00001 4468.00 11926.00 447220.00 2480676.00
36
- 00005 0.00 NULL 0.00 NULL
37
+ 00005 0.00 NULL 0.00 NULL
37
- 99999 50.00 NULL 5000.00 NULL
38
+ 99999 50.00 NULL 5000.00 NULL
38
39
 
39
40
  この結果を正しいものを表示させたいです。
40
41
 
41
42
  ###該当のソースコード
43
+ ↓2つのコードのどちらかをうまく編集したいです。
44
+
42
45
  select
43
46
  KYA.地区コード,
44
47
  SUM(k1.買上点数) AS 買上点数1,
@@ -57,7 +60,68 @@
57
60
  group by KYA.地区コード
58
61
  order by KYA.地区コード
59
62
 
63
+
64
+ select
65
+ KYA.地区コード,
66
+ SUM(k1.買上点数) AS 買上点数1,
67
+ SUM(k2.買上点数) AS 買上点数2,
68
+ SUM(k1.買上金額) AS 買上金額1,
69
+ SUM(k2.買上金額) AS 買上金額2
70
+ from (
71
+ (select 顧客コード,買上点数,買上金額 from KYSDAY)as KYSDAY
72
+ left join(select KYSDAY.顧客コード,kysday.買上点数,kysday.買上金額 from KYSDAY
73
+ where KYSDAY.日付 = '20141215' ) as k1 on KYSDAY.顧客コード = k1.顧客コード
74
+ left join (select KYSDAY.顧客コード,kysday.買上点数,kysday.買上金額 from KYSDAY
75
+ where KYSDAY.日付 = '20150730') as k2 on k1.顧客コード = k2.顧客コード
76
+ ) as KYSDAY
77
+ inner join KYA on KYSDAY.顧客コード = KYA.顧客コード
78
+ group by KYA.地区コード
79
+ order by KYA.地区コード
60
80
 
81
+
61
82
  ###試したこと
62
83
  上のコードのJOINや結合条件をいろいろいじってみましたがうまくいきません。
63
- どうか皆様のお力をお貸しください。
84
+ どうか皆様のお力をお貸しください。
85
+ ※今回はFROM句内のサブクエリの勉強なのでFROM句内の結合をうまく表示させたいです。
86
+
87
+ ↓の2つの表を平行に表示させる感じにしたいです。
88
+ SELECT
89
+ KYA.地区コード
90
+ , sum(KYSDAY.買上点数)as 買上点数
91
+ , sum(KYSDAY.買上金額)as 買上金額
92
+ FROM
93
+ KYSDAY
94
+ INNER JOIN KYA
95
+ ON KYA.顧客コード = KYSDAY.顧客コード
96
+ WHERE
97
+ KYSDAY.日付 = '20141215'
98
+ group BY
99
+ KYA.地区コード
100
+
101
+ 地区コード,買上点数,買上金額
102
+ 00001 17.00 1705.00
103
+ 00005 0.00 0.00
104
+ 99999 5.00 500.00
105
+
106
+ SELECT
107
+ KYA.地区コード
108
+ , sum(KYSDAY.買上点数)as 買上点数
109
+ , sum(KYSDAY.買上金額)as 買上金額
110
+ FROM
111
+ KYSDAY
112
+ INNER JOIN KYA
113
+ ON KYA.顧客コード = KYSDAY.顧客コード
114
+ WHERE
115
+ KYSDAY.日付 = '20150730'
116
+ group BY
117
+ KYA.地区コード
118
+
119
+ 地区コード,買上点数,買上金額
120
+ 00001 37.00 7538.00
121
+
122
+ 表示結果としては↓を目指しています。
123
+
124
+ 地区コード,買上点数1,買上点数2,買上金額1,買上金額2
125
+ 00001 17.00 37.00 1705.00 7538.00
126
+ 00005 0.00 NULL 0.00 NULL
127
+ 99999 5.00 NULL 500.00 NULL