• ベストアンサー
  • すぐに回答を!

アクセスの2つのテーブルから重複しないものを抜き出す方法について

アクセスの2つのテーブルから重複しないものを抜き出す方法について 例えば テーブル Aには ID   価格    商品   1  200    りんご   2  150    みかん   3  180    りんご   4  230    いちご テーブル Bには   1  150    みかん   2  180    りんご とあった場合 A-B のクエリーを実行して   1  200    りんご   2  230    いちご という結果を得たいのですが、どのようにすれば出来るのでしょうか よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数1300
  • ありがとう数4

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

  • ベストアンサー
  • 回答No.4
  • ykymtkt
  • ベストアンサー率51% (14/27)

"SELECT~FROM"は クエリを新規に作成してクエリのデザイン画面の上部のテーブル等が表示される部分で右クリックしSQLビューに切り替えて表示される画面に入力します。 Selectの後は参照したいフィールド名、 Fromの後はテーブル名です。 Whereの後ろはデータを参照する条件を記述します。 SQLやAccessVBAを勉強されるときに参考に出来る書籍は山のようにありますので、書店で実際に見られて分かりやすいものを購入されるのがよいと思います。InterNetでもSQLを解説したページが沢山ありますので"SQL"や"ACCESS"等で検索されたらいかがでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

たいへん参考になりました ありがとうございました 今後ももよろしくお願いいたします。

関連するQ&A

  • 教えてアクセス2007!「在庫管理を求める方法」

    教えてアクセス2007!「在庫管理を求める方法」 アクセス2007を扱うのは初心者ですが在庫管理のデーターを作っていて フォームを開いた時に商品の在庫だけが表示される方法を教えて下さい たとえば 入荷              出荷 商品  日付 入荷数      商品   日付  出荷数 りんご 5/1  10     りんご  5/10  10 いちご 5/5  10     ばなな  5/15  10 ばなな 5/10 10     みかん  5/16  10 みかん 5/11 10 メロン 5/13 10 この場合、いちごとメロンが残ってます フォームを開いた時、残ってる商品だけを表示させたいのですが どうしたら良いでしょうか?教えて下さい。  

  • エクセル重複セルについて

    例えば    A   B 1  品名 数量 2 みかん  2 3 りんご  2 4 みかん  1 5 いちご  1 6 りんご  1  とあるとして、 他のセルに    C   D 1  品名  個数 2  みかん  3 3  りんご  3 4  いちご  1  のように 重複セルを削除し、なおかつ 個数もまとめるというようなことは エクセルでできないでしょうか? 宜しくお願いします。

  • ACCESSでの重複箇所

    accessで以下の様なデータがあります 受注番号|商品名|個数|単価|送料|手数料| 1111 |みかん|3 |200 |500 |0 | 2222 |りんご|2 |250 |500 |250 | 2222 |いちご|4 |200 |500 |250 | 2222 |メロン|1 |1000|500 |250 | 3333 |ぶどう|2 |800 |500 |0 | 4444 |いちご|2 |200 |500 |250 | 4444 |メロン|1 |1000|500 |250 | 2222や4444の様に受注番号が同じ場合 2222 |りんご|2 |250 |500 |250 | 2222 |いちご|4 |200 |0 |0 | 2222 |メロン|1 |1000|0 |0 | 4444 |いちご|2 |200 |500 |250 | 4444 |メロン|1 |1000|0 |0 | と、先頭にだけ送料・手数料を残して残りを【0】もしくは 削除する方法はありますか? 手作業では件数が多い為、クエリなど使って自動的に する方法があれば教えてください。 どうぞよろしくお願い致します。

その他の回答 (4)

  • 回答No.5

SELECT テーブルA.ID, テーブルA.価格, テーブルA.商品 FROM テーブルA LEFT JOIN テーブルB ON (テーブルA.商品=テーブルB.商品) AND (テーブルA.価格=テーブルB.価格) WHERE (テーブルB.ID) Is Null; とすればよいと思います。 また、SQLを使わずとも不一致クエリーウィザードを使えば簡単に出来ます。

共感・感謝の気持ちを伝えよう!

  • 回答No.3
noname#1802

select A.* from A where A.価格 not in ( select B.価格 from B ) ; でいいのでは?? 「価格」を「商品」としても問題ないかと・・・・

共感・感謝の気持ちを伝えよう!

  • 回答No.2
  • arata
  • ベストアンサー率49% (139/279)

1.まず、UNIONクエリーでデータを統合します。 -1でかけているところがミソです。 VIEWを作ると使いやすいかもしれません。 このVIEWを統合テーブルという名前とします。 SELECT 価格 AS 価格,商品 AS 商品 FROM テーブルA UNION ALL SELECT 価格*-1 AS 価格,商品 AS 商品 FROM テーブルB 2.上記の統合テーブルから集計値を計算します。 SELECT SUM(価格),商品 FROM 統合テーブル GROUP BY 商品 これで、OKだと思います。オラクルだとFROMにSELECT文がかけるので、1回でとれると思います。 なお、価格が0のものも出てしまいますが、これを除きたい場合は、HAVING句を使うなどしてください。

共感・感謝の気持ちを伝えよう!

質問者からの補足

早速の回答ありがとうございます。 さて、初歩的な質問で恐縮なのですが SELECT...以下の文についてですが何処に書けば良いのでしょうか また SELECT や FROM 等の構文については何を参照したら良いでしょか 全くのど素人が勉強するのに最適な参考書がございましたらご紹介ください。

  • 回答No.1
  • ykymtkt
  • ベストアンサー率51% (14/27)

このままの状態だとちょっと難しいのでたとえばテーブルを Aは ID  価格    商品  商品コード  1  200   りんご 101  2  150   みかん 102  3  180   りんご 103  4  230   いちご 104 Bは ID  価格    商品  商品コード  1  150   みかん 102  2  180   りんご 103 という風にします。 すると SELECT テーブルA.商品コード FROM テーブルA,テーブルB WHERE テーブルA.商品コード = テーブルB.商品コード これで重複している商品コードが取得できますのでこれをサブクエリにして SELECT * FROM テーブルA WHERE 商品コード NOT IN (    SELECT テーブルA.商品コード    FROM テーブルA,テーブルB    WHERE テーブルA.商品コード = テーブルB.商品コード) UNION SELECT * FROM テーブルB WHERE 商品コード NOT IN (    SELECT テーブルA.商品コード    FROM テーブルA,テーブルB    WHERE テーブルA.商品コード = テーブルB.商品コード) これで重複しないものが取得できます。 ちなみにご質問の例ですと重複しないものがテーブルAだけのようですので、それでよろしければ"UNION"句以降は要りません。 ただしこの方法(Not Inの使用)はデータ件数が多くなるほど処理の時間がかかるようになります。

共感・感謝の気持ちを伝えよう!

質問者からの補足

早速の回答ありがとうございます。 また、商品コードをつけたらいいという事ですが残念ながら初期のデータが膨大にあり後からつけるのが困難です。 さて、初歩的な質問で恐縮なのですが SELECT...以下の文についてですが何処に書けば良いのでしょうか また SELECT や FROM 等の構文については何を参照したら良いでしょか 全くのど素人が勉強するのに最適な参考書がございましたらご紹介ください。

関連するQ&A

  • access テーブル結合の逆?

    Access2003 お世話になります。SQLで以下のようなデータを取得する場合、上手い方法はあるのでしょうか。なんだかとても簡単な事のような気がするのですが…… テーブルA: ---品名--- りんご みかん もも いちご テーブルB: ---品名--- りんご もも このテーブルBに入力されているレコードをテーブルAから"除外"して、結果として「みかん」と「いちご」だけが欲しいのです。 テーブルBのレコードが少なければ、直接 品名<>"りんご" とか書いてもいいのかもしれませんが、結合のようなSQLで一発でできてしまったりしないでしょうか。 access上で可能なスマートな方法があれば教えていただきたいです。 よろしくお願いいたします。

  • アクセスのテーブルで

    アクセスのテーブルで 001    あさ 001    ひる 001    よる 002    3時 002    4時 というテーブルを  001 あさ ひる よる           002 3時  4時 というようにまとめたいのですが、重複クエリ削除とかでするものなのでしょうか?

  • Excel 2つの重複データに重複先セル番地を表示させたい!

    お世話になります。 エクセルで2つの重複しているデータがランダムにがあります。 下記のように表示いたいのですが、良いほうを教えて下さい。 たとえばA1のみかんがA7と重複している時【7】と表示したい ※VBAはわかりません。関数は得意です。  よろしくお願いします。 A  B C 1  7 みかん 2  5 りんご 3    もも 4  6 なし 5  2  りんご 6  4  なし 7  1  みかん 8  9  ぶどう 9  8  ぶどう

  • accessで2つのテーブルから参照する方法

    access2007を使っています。 例えば、 テーブルA ID   品名   価格 A1   鉛筆    100円 テーブルB ID   品名   価格 B1  消しゴム  50円 というレコードが2つあった場合 テーブルAとテーブルBのどちらからも参照して ID  品名   価格 A1  鉛筆   100円 B1  消しゴム  50円 というふうにクエリにデータを反映させるのにはどうすれば良いのでしょうか?  

  • Access 抽出データ件数のカウント方法について

    初心者なので、初歩的な質問で申し訳ありません。 以下の2つのテーブルを用いて 販売した数を数える_クエリテーブルを 作成したいのですが、どの様に作成すれば 良いのでしょうか? 期待するクエリーテーブルの結果は << Q_Goods_Master >>の様な結果です。 ========================= << T_Goods_Master >> ID | GoodsName ---+-------------- 01 | バナナ 02 | りんご 03 | みかん << T_Sales_Data >> ID | GoodsName ---+-------------- 01 | りんご 02 | みかん 03 | りんご ========================= << Q_Goods_Master >> GoodsName | Qty ----------+---- バナナ | 0 りんご | 2 みかん | 1

  • group byにより集計した結果での名称取得方法

    次のようなテーブルがあったとして、一回のSQLで商品名称とその売上件数の一覧を作成することは可能なのでしょうか? 【売上テーブル】 ID 販売日 商品ID 0001 2011/01/01 1 0002 2011/01/01 2 0003 2011/01/03 1 0004 2011/01/10 1 0005 2011/01/12 2 ・・・ 【商品マスタ】 ID 商品名 1 りんご 2 みかん 3 いちご 【最終的に作成したい一覧】 商品名 件数 りんご 3 みかん 2 いちご 0 ※売上テーブルに存在しない商品についても、件数が0件として一覧に出力出来るようにしたいです。 select 商品ID from 売上テーブル group by 商品ID にて商品ID毎の件数を算出し、それとは別に select ID,商品名 from 商品マスタ として、商品IDと名称のリストを取得後、アプリにてこれらの情報を突き合わせれば実現できるのは分かるのですが、これらの処理を一回のSQLにまとめることは可能なのでしょうか? よろしくお願いします。

  • アクセスの重複クエリ

    二つのテーブルやクエリで重複するデータを 抽出するのは「重複クエリ」でいいのでしょうか? それとも「重複クエリ」は一つのテーブルの中の重複するデータを 抽出するものなのでしょうか?

  • 2つのテーブルで重複する値のレコードを削除したい

    削除クエリ?重複クエリ?について教えてください。 テーブル1 フィールド"番号"には 1 2 3 テーブル2 フィールド"番号"には 3 4 5 があるとします。 「テーブル2と重複しているテーブル1のレコードを削除する」 (この場合「3」が重複しているのでテーブル1の3が入力されているレコードを削除) としたいのですがどいゆうSQL文を書けばいいのかわかりません。 ご教授よろしくお願いします。

  • Access重複クエリに関するご質問

    Access重複クエリを用いて、以下のような結果を出したいのですが 可能でしょうか? ご指導の程よろしくお願いいたします。 (例) <テーブル> ID 判定 日本語   英語 1   o   テスト   test 2 o    赤     red 3   x   油     apple 4   o    愛     love 5 x  りんご   apple 6   o  日本    Japan 7 o    テスト   test 8   o  りんご   apple 9   x   赤     blue 10   o  テスト   test <クエリ結果(1)> ・日本語重複、かつ、英語重複のレコードを、重複単位に並べ替えて抽出したい。 ※ID「3」の英語は重複しているが、日本語が重複していないので抽出しない。 ※ID「9」の日本語は重複しているが、英語が重複していないので抽出しない。 ID 判定 日本語   英語 1   o  テスト   test 7 o    テスト   test 10   o  テスト   test 5 x  りんご   apple 8   o  りんご   apple <クエリ結果(2)> ・クエリ結果(1)に加えて、判定が「o」、「x」どちらも含まれるレコードだけを抽出したい ※ID「1、7、10」は、判定がすべて「o」の為、抽出しない。 ID 判定 日本語   英語 5 x  りんご   apple 8   o  りんご   apple 以上ご教授の程よろしくお願いいたします。

  • 一つのテーブルの複数のフィールドから抜き出す方法について

    一つのテーブルの複数のフィールドから抜き出す方法について 例えば下記のようなテーブルがあったとします。       1     2     3     4 A商店  りんご   みかん   バナナ B商店  みかん   イチゴ   くり    パイナップル C商店  イチゴ   パイナップル バナナ D商店  イチゴ   バナナ   りんご のようなテーブルがありフィールド1~4いずれかにみかんを含むクエリーを作成し次のような結果をACCESSで作成したいのですが、簡単な方法はあるのでしょうか?       1     2     3     4 A商店  りんご   みかん   バナナ B商店  みかん   イチゴ   くり    パイナップル よろしくお願いいたします。 尚、使用しているデータベースはACCESS2000です。