- ベストアンサー
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を使用します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
サブクエリーを使えば可能かな? 具体的にはこんな感じ、 (クエリーをSQLビューにして、記述してください。) SELECT テーブル名.フィールド1, * FROM テーブル名 WHERE テーブル名.フィールド1 In (SELECT テーブル名.フィールド1 FROM テーブル名 WHERE テーブル名.フィールド2=20 AND テーブル名.フィールド3=200;); フィールド1 の値が In 以降のカッコ内のクエリーで抽出される値に含まれるレコードを抽出しています。 詳しくは、HELPでサブクエリーを調べてみてください。
その他の回答 (4)
- O_cyan
- ベストアンサー率59% (745/1260)
横レスで失礼します。 >条件が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)
#1に補足します。 抽出したいのは フィールド2に20、フィールド3に200を持つ人がいたら その人のレコード全て そういうことですよね?
補足
そうです。 説明が悪くてすみません。 クエリでできますか?
- imasyu
- ベストアンサー率36% (19/52)
>上記のテーブルでは、1件目と2件目のレコードがあてはまります。 ということは 条件1・・・フィールド2が「20以下」 条件2・・・フィールド3が「200以下」 ということですね。それともレコードとフィールドを取間違えてます? クエリを使用すれば簡単です。 1.クエリのデザインビューを使ってクエリを作成するを選択 2.目的のテーブルを選択 3.使用するフィールドを追加する 4.抽出条件を指定する(下記参照) フィールド1 フィールド2 フィールド3 ----------------------- 抽出条件: <=20 <=200 このようなクエリでいいのではないでしょうか Aさん 20 200 だけを取り出したい(おそらくこちらが正解)ときは抽出条件の < をはずしてください
補足
すいません、わたしの説明が悪かったようです。 フィールド2、フィールド3の値は数字じゃなくてもいいのですが、 とにかく、条件が2つあって、フィールド2とフィールド3の値が その条件をみたしている場合のAさんのデータを すべて抜き出すという意味です。
- creep03
- ベストアンサー率41% (12/29)
フィールド2が20 フィールド3が200 のフィールド1を表示するクエリを作成し、 例題のテーブルに紐付けてあげればいいんじゃないでしょうか。
お礼
ありがとうございました。 参考になりました。