• ベストアンサー

Accessでの抽出について

Accessで下記のようなテーブルがあるとします。 フィールド1  フィールド2  フィールド3 ----------------------- Aさん      20       200 Aさん      10       180 Bさん      10       300 Cさん      10       250 Cさん      30       310 条件1・・・フィールド2が「20」 条件2・・・フィールド3が「200」 この条件が当てはまる、フィールド1のデータはすべて抽出というふうにしたいのですが・・・。 (上記のテーブルでは、1件目と2件目のレコードがあてはまります。) どのようにして抽出したらよいでしょうか?よろしくお願いします。 Access2000を使用します。

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

  • ベストアンサー
  • yoisho
  • ベストアンサー率64% (331/516)
回答No.4

サブクエリーを使えば可能かな? 具体的にはこんな感じ、 (クエリーをSQLビューにして、記述してください。) SELECT テーブル名.フィールド1, * FROM テーブル名 WHERE テーブル名.フィールド1 In (SELECT テーブル名.フィールド1 FROM テーブル名 WHERE テーブル名.フィールド2=20 AND テーブル名.フィールド3=200;); フィールド1 の値が In 以降のカッコ内のクエリーで抽出される値に含まれるレコードを抽出しています。 詳しくは、HELPでサブクエリーを調べてみてください。

yuuchan
質問者

お礼

ありがとうございました。 参考になりました。

その他の回答 (4)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.5

横レスで失礼します。 >条件が2つあって、フィールド2とフィールド3の値が >その条件をみたしている場合 クエリで簡単に抽出できます。 #2の方のいうようにすれば出来ますよ。     フィールド1  フィールド2  フィールド3    ----------------------- 抽出条件:        =20      =200 抽出条件の同じ段に条件を書けばフィールド2が20でかつフィールド3が200のレコードを全て抽出できます。 Aさんのみ抽出したい場合はフィールド1に=Aさん で Aさんのレコード中でフィールド2が20でかつフィールド3が200のレコードを全て抽出できます。

  • creep03
  • ベストアンサー率41% (12/29)
回答No.3

#1に補足します。 抽出したいのは フィールド2に20、フィールド3に200を持つ人がいたら その人のレコード全て そういうことですよね?

yuuchan
質問者

補足

そうです。 説明が悪くてすみません。 クエリでできますか?

  • imasyu
  • ベストアンサー率36% (19/52)
回答No.2

>上記のテーブルでは、1件目と2件目のレコードがあてはまります。 ということは 条件1・・・フィールド2が「20以下」 条件2・・・フィールド3が「200以下」 ということですね。それともレコードとフィールドを取間違えてます? クエリを使用すれば簡単です。 1.クエリのデザインビューを使ってクエリを作成するを選択 2.目的のテーブルを選択 3.使用するフィールドを追加する 4.抽出条件を指定する(下記参照)      フィールド1  フィールド2  フィールド3      ----------------------- 抽出条件:        <=20      <=200 このようなクエリでいいのではないでしょうか Aさん 20 200 だけを取り出したい(おそらくこちらが正解)ときは抽出条件の < をはずしてください

yuuchan
質問者

補足

すいません、わたしの説明が悪かったようです。 フィールド2、フィールド3の値は数字じゃなくてもいいのですが、 とにかく、条件が2つあって、フィールド2とフィールド3の値が その条件をみたしている場合のAさんのデータを すべて抜き出すという意味です。

  • creep03
  • ベストアンサー率41% (12/29)
回答No.1

フィールド2が20 フィールド3が200 のフィールド1を表示するクエリを作成し、 例題のテーブルに紐付けてあげればいいんじゃないでしょうか。

関連するQ&A