回答編集履歴

5

訂正

2020/05/28 02:31

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -92,4 +92,4 @@
92
92
 
93
93
  上記で言う所のJANコード「5678」のデータを見て下さい。
94
94
 
95
- 上記の結果になるなら、「数量」値があり「売上」が0のデータがあるはずです。
95
+ 上記の結果になるなら、「数量」値があり「売上」が0のデータがあるはずです。

4

追記

2020/05/28 02:31

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -68,42 +68,28 @@
68
68
 
69
69
  --
70
70
 
71
- データ調査用のSQLです。
71
+ ```
72
72
 
73
- 年度を持たせているのは質問の内容が年度ごとに集計しているからです。
73
+ 本来
74
74
 
75
- ```SQL
75
+ フィールド名:JANコード 商品名 販売数 販売価格(税抜) 合計売上(税抜)
76
76
 
77
- select JANコード, 商品名, 販売価格, count(*) as 件数
77
+ 1234    ○○   10    1000       10000
78
78
 
79
- from (
79
+ 5678    ●●   12    1000       12000
80
80
 
81
- SELECT JANコド, 商品名, 販売価格, 年度
81
+ となった最終デタがほしいのに
82
82
 
83
- from (
83
+ フィールド名:JANコード 商品名 販売数 販売価格(税抜) 合計売上(税抜)
84
84
 
85
- select 2000 as 年度, * from [2000年]
85
+ 1234    ○○   10    1000       10000
86
86
 
87
- union all select 2001, * from [2001年]
87
+ 5678    ●●   20    1000       20000
88
88
 
89
- union all select 2002, * from [2002年]
90
-
91
- union all select 2003, * from [2003年]
92
-
93
- union all select 2004, * from [2004年]
94
-
95
- ) as marge
96
-
97
- GROUP BY JANコード, 商品名, 販売価格, 年度
98
-
99
- ) step1
89
+ となる
100
-
101
- GROUP BY JANコード, 商品名, 販売価格
102
-
103
- having count(*)>1
104
90
 
105
91
  ```
106
92
 
107
- 上記でデータが抽出れれば、年度で跨ってます
93
+ 上記で言う所のJANコード「5678」のデータを見て下さい。
108
94
 
109
- 抽出されければ同様に対象項目を変えて(例えば年度の代わりに商品名とか)行ってみて下さい
95
+ 上記の結果にるなら「数量」値があり「売上」が0データがあるはずです

3

追記

2020/05/28 02:31

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -63,3 +63,47 @@
63
63
  union all select 2004, * from [2004年]
64
64
 
65
65
  ```
66
+
67
+ 追記
68
+
69
+ --
70
+
71
+ データ調査用のSQLです。
72
+
73
+ 年度を持たせているのは質問の内容が年度ごとに集計しているからです。
74
+
75
+ ```SQL
76
+
77
+ select JANコード, 商品名, 販売価格, count(*) as 件数
78
+
79
+ from (
80
+
81
+ SELECT JANコード, 商品名, 販売価格, 年度
82
+
83
+ from (
84
+
85
+ select 2000 as 年度, * from [2000年]
86
+
87
+ union all select 2001, * from [2001年]
88
+
89
+ union all select 2002, * from [2002年]
90
+
91
+ union all select 2003, * from [2003年]
92
+
93
+ union all select 2004, * from [2004年]
94
+
95
+ ) as marge
96
+
97
+ GROUP BY JANコード, 商品名, 販売価格, 年度
98
+
99
+ ) step1
100
+
101
+ GROUP BY JANコード, 商品名, 販売価格
102
+
103
+ having count(*)>1
104
+
105
+ ```
106
+
107
+ 上記でデータが抽出されれば、年度で跨っています。
108
+
109
+ 抽出されなければ、同様に対象の項目を変えて(例えば年度の代わりに商品名とか)行ってみて下さい。

2

追記

2020/05/28 02:20

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -47,3 +47,19 @@
47
47
  GROUP BY JANコード, 商品名, 販売価格
48
48
 
49
49
  ```
50
+
51
+ unionの部分で、元の年度を識別するようには以下の様にします。
52
+
53
+ ```SQL
54
+
55
+ select 2000 as 年度, * from [2000年]
56
+
57
+ union all select 2001, * from [2001年]
58
+
59
+ union all select 2002, * from [2002年]
60
+
61
+ union all select 2003, * from [2003年]
62
+
63
+ union all select 2004, * from [2004年]
64
+
65
+ ```

1

追記

2020/05/28 01:55

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -15,3 +15,35 @@
15
15
 
16
16
 
17
17
  2重表示されるものが分かっているなら、それぞれのクエリーでのデータ詳細を確認して下さい。
18
+
19
+
20
+
21
+ 追記
22
+
23
+ --
24
+
25
+ 元にしているデータのレイアウトが変わらないなら、`union all`するのはデータをマージするのを先に行うと簡潔です。
26
+
27
+ ```SQL
28
+
29
+ SELECT JANコード, 商品名, 販売価格
30
+
31
+ , Sum(販売数) AS 販売数の合計, Sum(合計売上) AS 合計売上の合計
32
+
33
+ from (
34
+
35
+ select * from [2000年]
36
+
37
+ union all select * from [2001年]
38
+
39
+ union all select * from [2002年]
40
+
41
+ union all select * from [2003年]
42
+
43
+ union all select * from [2004年]
44
+
45
+ ) as marge
46
+
47
+ GROUP BY JANコード, 商品名, 販売価格
48
+
49
+ ```