二つのテーブルを利用して合計人数を出すクエリを利用すると、
テーブル1でIDが複数出てくるものの人数が2回計算されてしまします。
これを1回にするにはどうしたらよいでしょうか。
テーブル1
| ID | 地域 |
|---|---|
| 1 | 東京 |
| 1 | 東京 |
| 2 | 大阪 |
テーブル2
| ID | 人数 | 日付 |
|---|---|---|
| 1 | 5 | 2022/03/01 |
| 1 | 3 | 2022/03/08 |
| 2 | 7 | 2022/03/06 |
| 2 | 2 | 2022/03/13 |
クエリ1
SQL
1SELECT [テーブル1].ID, Sum([テーブル2].人数) AS 人数の合計 2FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].ID = [テーブル2].ID 3GROUP BY [テーブル1].ID;
実行結果
| ID | |
|---|---|
| 1 | 16 (←正しくは8) |
| 2 | 9 |
DISTINCTを利用したクエリを先に実行してIDを各一つずつに絞り込めば、
下記のようにIDをひとづずつ出力し正しい値になりますが、
クエリ1自体を変更することで、正しい値にすることはできないでしょうか。
よろしくお願いします。
SQL
1SELECT DISTINCT [テーブル1].ID 2FROM テーブル1;
| ID | |
|---|---|
| 1 | |
| 2 |
回答1件
あなたの回答
tips
プレビュー
2022/03/20 08:44