- ベストアンサー
アクセスの2つのテーブルから重複しないものを抜き出す方法について
アクセスの2つのテーブルから重複しないものを抜き出す方法について 例えば テーブル Aには ID 価格 商品 1 200 りんご 2 150 みかん 3 180 りんご 4 230 いちご テーブル Bには 1 150 みかん 2 180 りんご とあった場合 A-B のクエリーを実行して 1 200 りんご 2 230 いちご という結果を得たいのですが、どのようにすれば出来るのでしょうか よろしくお願いします。
- Tach
- お礼率43% (13/30)
- その他(データベース)
- 回答数5
- ありがとう数4
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
"SELECT~FROM"は クエリを新規に作成してクエリのデザイン画面の上部のテーブル等が表示される部分で右クリックしSQLビューに切り替えて表示される画面に入力します。 Selectの後は参照したいフィールド名、 Fromの後はテーブル名です。 Whereの後ろはデータを参照する条件を記述します。 SQLやAccessVBAを勉強されるときに参考に出来る書籍は山のようにありますので、書店で実際に見られて分かりやすいものを購入されるのがよいと思います。InterNetでもSQLを解説したページが沢山ありますので"SQL"や"ACCESS"等で検索されたらいかがでしょうか。
その他の回答 (4)
- Tirelo-Setshaba
- ベストアンサー率35% (28/79)
SELECT テーブルA.ID, テーブルA.価格, テーブルA.商品 FROM テーブルA LEFT JOIN テーブルB ON (テーブルA.商品=テーブルB.商品) AND (テーブルA.価格=テーブルB.価格) WHERE (テーブルB.ID) Is Null; とすればよいと思います。 また、SQLを使わずとも不一致クエリーウィザードを使えば簡単に出来ます。

select A.* from A where A.価格 not in ( select B.価格 from B ) ; でいいのでは?? 「価格」を「商品」としても問題ないかと・・・・
- 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 等の構文については何を参照したら良いでしょか 全くのど素人が勉強するのに最適な参考書がございましたらご紹介ください。
- 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
- 一つのテーブルの複数のフィールドから抜き出す方法について
一つのテーブルの複数のフィールドから抜き出す方法について 例えば下記のようなテーブルがあったとします。 1 2 3 4 A商店 りんご みかん バナナ B商店 みかん イチゴ くり パイナップル C商店 イチゴ パイナップル バナナ D商店 イチゴ バナナ りんご のようなテーブルがありフィールド1~4いずれかにみかんを含むクエリーを作成し次のような結果をACCESSで作成したいのですが、簡単な方法はあるのでしょうか? 1 2 3 4 A商店 りんご みかん バナナ B商店 みかん イチゴ くり パイナップル よろしくお願いいたします。 尚、使用しているデータベースはACCESS2000です。
- ベストアンサー
- その他(データベース)
- Accessで重複データを結合するには?
こんにちわ、みなさん。 Access超初心者です。よろしくお願いします。 Accessのテーブルで下記のようなデータがあるとします。 店名 | 商品 | A店 |リンゴ | A店 |トマト | A店 |ナシ | B店 |リンゴ | B店 |みかん | これを下記のように店名ごとに商品名を結合したいのです。 (レポートではなく、テーブルにしたいです) 店名 | 商品 | A店 |リンゴ;トマト;ナシ | B店 |リンゴ;みかん | 重複クエリーを使えばと思ったのですが、 思ったとおりにはなりませんでした。。 どうぞ、よろしくお願い致します。m(__)m ---------------------------------------- OSは、Windows 98 アプリケーションは、Access 2000 です ----------------------------------------
- ベストアンサー
- オフィス系ソフト
- access テーブル結合の逆?
Access2003 お世話になります。SQLで以下のようなデータを取得する場合、上手い方法はあるのでしょうか。なんだかとても簡単な事のような気がするのですが…… テーブルA: ---品名--- りんご みかん もも いちご テーブルB: ---品名--- りんご もも このテーブルBに入力されているレコードをテーブルAから"除外"して、結果として「みかん」と「いちご」だけが欲しいのです。 テーブルBのレコードが少なければ、直接 品名<>"りんご" とか書いてもいいのかもしれませんが、結合のようなSQLで一発でできてしまったりしないでしょうか。 access上で可能なスマートな方法があれば教えていただきたいです。 よろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- ACCESS2000を使って複数のテーブルを照合する方法について
ACCESS2000を使用して下記のような3つのテーブルがあったとします。 1.メインテーブル 商品名 コード 1 りんご 012 2 りんご 022 3 バナナ 200 4 バナナ 201 5 イチゴ 100 2.A商店テーブル 商品名 コード 1 りんご 012 2 バナナ 200 3 バナナ 201 3.B商店テーブル 1 りんご 022 2 バナナ 201 テーブル1~3を照合して作製したいクエリ 商品名 コード A B 1 りんご 012 ○ × 2 りんご 022 × ○ 3 バナナ 200 ○ × 4 バナナ 201 ○ ○ 5 イチゴ 100 × × のように複数のテーブルを参照し、テーブル1のフィールドにある内容と同一のものがどのテーブルに存在するまたは、存在しないをがわかるような一覧リストを作成したいのですが、具体的にはどのようにしたら良いのでしょうか。 よろしくおねがいいたします。
- 締切済み
- その他(データベース)
- accessで2つのテーブルから参照する方法
access2007を使っています。 例えば、 テーブルA ID 品名 価格 A1 鉛筆 100円 テーブルB ID 品名 価格 B1 消しゴム 50円 というレコードが2つあった場合 テーブルAとテーブルBのどちらからも参照して ID 品名 価格 A1 鉛筆 100円 B1 消しゴム 50円 というふうにクエリにデータを反映させるのにはどうすれば良いのでしょうか?
- ベストアンサー
- オフィス系ソフト
- ACCESSのデータ抽出について
項目が同じ(1)テーブルと(2)テーブルと(3)の産地データをリレーションシップでつなぎデータ■クエリ_結果2のように抽出したいのですが■クエリ_結果2のちょうに重複するデータしか抽出できません。 どうしたら結果1のように全ての商品を抽出できるでしょうか? アクセス初心者です。よろしいくお願いします (1)テーブル【中央11月データ】 バナナ 50 りんご 10 ミカン 100 (2)テーブル【関西11月データ】 バナナ 30 梨 60 (3)産地データ バナナ フィリピン りんご 青森 みかん 愛媛 梨 千葉 ■クエリ_結果1 バナナ フィリピン 80 りんご 青森 10 みかん 愛媛 100 梨 千葉 60 ■クエリ_結果2 バナナ フィリピン 80
- ベストアンサー
- その他MS Office製品
- ACCESS2000の重複クエリ
よろしく、お願いします。 ACCESS2000+Win2000で使用しています。 ACCESS2000の”テーブルA”の”フィールドa”の”重複クエリ甲”の結果としてX、Y、Zというデータが出たとします。 そのうち、XのみにテーブルAの”フィールドb(Yes/No型)”にフラグを立てたいのですが、良い方法はありませんか? 私は重複クエリ甲に、更新クエリで更新する事は出来ませんよね? 甲と同じく”重複クエリ乙”を作って、乙は”集計”で先頭のみを出して、甲と乙の”不一致クエリ”で差分を出してみたりもしたのですが、更新クエリを使えない為に、フラグを立てられません。 何か良い方法を教えてください。 お願い致します。
- 締切済み
- オフィス系ソフト
- 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】もしくは 削除する方法はありますか? 手作業では件数が多い為、クエリなど使って自動的に する方法があれば教えてください。 どうぞよろしくお願い致します。
- ベストアンサー
- その他(データベース)
- ACCESSのクエリ機能で重複したデータを除く方法
accessの初心者です。 どなたかお詳しい方是非よろしくお願い致します。 accessのクエリ機能をつかい、レコードを結合したいのですが、重複したレコードを省く方法を教えてください m(_ _)m 例えば、下記のようなAとBというテーブルがあり、Aには商品番号と商品名、Bには商品番号と倉庫名が入っているとします。 テーブルA(※商品番号の重複なし) 商品番号 商品名 001 商品A 002 商品B 003 商品C テーブルB(※商品番号の重複あり) 商品番号 倉庫名 001 倉庫A 001 倉庫B 001 倉庫C 002 倉庫B 002 倉庫C 003 倉庫A 003 倉庫B 商品番号でクエリをかけて、テーブルAのレコード数と同じレコードの商品番号、商品名、倉庫名と表示させたいのです。 (倉庫名はテーブルBのレコードの中のいずれかだけでOKです。) 例えば、下記のようなクエリ結果を表示させたいです。 商品番号 商品名 倉庫名 001 商品A 倉庫A 002 商品B 倉庫B 003 商品C 倉庫A 説明がうまくできず申し訳ありませんが、どなたかお詳しい方よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- ACCESSで条件付き書式の設定方法
ACCESS初心者です。 エクセルでの条件付き書式ならわかるのですが、 同じようなことがACCESSでもできないかと思い、相談しました。 access (2003) 2007 または 2010で 次のようなデータをフォームで表示する際 データ構造 ID ロット 商品名 生産者 1 A みかん 佐藤 2 A りんご 武藤 3 A いちご 江藤 4 A りんご 武藤 5 B りんご 須藤 6 B みかん 津藤 7 B りんご 江藤 (IDは表示しません) このデータで 同じロットに同じ生産者の同じ商品が入らないように チェックをしたいのです。 ですから、このデータでは ロット「A」生産者「武藤」商品名「りんご」の行 あるいは一項目が 強調表示されるようにしたいのです。 なにか良い方法があればお教え下さい。よろしくお願いします。
- ベストアンサー
- その他(データベース)
お礼
たいへん参考になりました ありがとうございました 今後ももよろしくお願いいたします。