- ベストアンサー
アクセスでデータを足すには、また、引くには?
アクセスを使用していて、テーブルAにあるデータに、テーブルBにあるデータを足したいと思っています。 それぞれデータは”名前”のようなフィールドで、ひとつにまとめたいのですがクエリーでの表現が分かりません。SQLビューのようなやり方でも構いませんので、是非お願い致します。 また、もう一つですが、テーブルAにあるデータに、テーブルBにあるデータを引きたい思っています。こちらも”名前”のようなフィールドで、同じレコードは省きたいと思っております。 よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
足す方は、UNION ALL を使います。 SELECT ID, Name FROM TABLE_A UNION ALL SELECT ID, Name FROM TABLE_B; で、テーブルAの後にテーブルBのデータがくっついて出力されます。 表示されるフィールド名は、最初に記述した方(先の例ではTABLE_A)になります。 尚、くっつける際には各テーブル間で、フィールドの数や型が同じである必要があります。 SELECT ID, Name FROM TABLE_A UNION ALL SELECT ID, Name FROM TABLE_B ORDER BY ID; だと、二つのテーブルをくっつけた後で、更にIDで並べ替えを行います。 引き算の方は、キー項目で外部結合し、多側のフィールドがNULLのものだけを抽出してやります。 TABLE_AとTABLE_Bがあり、どちらもフィールド[ID]が主キーだとすると、 SELECT TABLE_A.ID, TABLE_A.Name FROM TABLE_A LEFT JOIN TABLE_B ON TABLE_A.ID = TABLE_B.ID WHERE TABLE_B.ID IS NULL; です。 「足す」「引く」の定義が少し分かりづらかったので、ひょっとしたらピントがずれているかもしれないです(^^;
お礼
ありがとうございます。 ズバリ思っていたものでした。すごく分かりやすくて嬉しいです。引き算は少し触りながらでないと、マスターできないかなっと思うので、いろいろ試したいと思います。 ありがとうございました。