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

回答編集履歴

2

count(distinct))の方がいいか

2021/10/22 00:52

投稿

FKM
FKM

スコア3662

answer CHANGED
@@ -1,1 +1,6 @@
1
- SQLの販売実績が加算されているからです。なので、sum関数を外しましょう。
1
+ テーブル2によって販売実績が加算されているからです。なので、sum関数を外して**count(distinct(item_number))**
2
+
3
+ として、グループを集約しましょう。
4
+
5
+ [SELECT (SQL)](https://ja.wikipedia.org/wiki/SELECT_(SQL))
6
+ これのcount関数を参照。

1

間違い

2021/10/22 00:52

投稿

FKM
FKM

スコア3662

answer CHANGED
@@ -1,16 +1,1 @@
1
- SQLによっitem_numberでグループ制御しているからです。item_number型番としま
1
+ SQLの販売実績が加算されているからです。なので、sum関数しましょう
2
-
3
-
4
- ```sql
5
- "SELECT *,SUM(s.sales_number) AS sales
6
- FROM {$wpdb->prefix}items i INNER JOIN {$wpdb->prefix}sales s
7
- ON i.item_number = s.item_number
8
- WHERE i.item_number=$itemNumber
9
- GROUP BY i.item_number,s.color, s.size";
10
- ```
11
-
12
- GROUP BY句制御にitem_numberがあるため、たとえ色違い、サイズ違いでも型番が同じならば、型番が優先されてしまい、それによって集計(sum)されます。なので、
13
-
14
- `GROUP BY s.color,s.size`
15
-
16
- としましょう。