• ベストアンサー

アクセスでデータを足すには、また、引くには?

アクセスを使用していて、テーブルAにあるデータに、テーブルBにあるデータを足したいと思っています。 それぞれデータは”名前”のようなフィールドで、ひとつにまとめたいのですがクエリーでの表現が分かりません。SQLビューのようなやり方でも構いませんので、是非お願い致します。 また、もう一つですが、テーブルAにあるデータに、テーブルBにあるデータを引きたい思っています。こちらも”名前”のようなフィールドで、同じレコードは省きたいと思っております。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.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; です。 「足す」「引く」の定義が少し分かりづらかったので、ひょっとしたらピントがずれているかもしれないです(^^;

noname#107402
質問者

お礼

ありがとうございます。 ズバリ思っていたものでした。すごく分かりやすくて嬉しいです。引き算は少し触りながらでないと、マスターできないかなっと思うので、いろいろ試したいと思います。 ありがとうございました。

関連するQ&A