二つのテーブルを利用して合計人数を出すクエリを利用すると、
テーブル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