• 締切済み

アクセス2003でのクエリーの抽出条件について教えてください

教えてください アクセス2003であるデータを条件を付けて抽出しようと 思ってます。 データあいうえおテーブル 人   最小  最大 A   1  10(1~10の間ということです) B   11  20 C   21  30 というデータがあったとします。 かきくけこテーブル 判定  範囲1  範囲2       I  0  14(A,B,Cで1~10であるならIということです。0<1 10<14)  II  14  26  III  27  30 というものでクエリーを実行した場合 結果として A  1  10  I B  11  20  II(IとIIでBのデータ範囲がかぶっていますが、IIの方が多くかぶっているのでII) C  21  30  II(IIとIIIでBのデータ範囲がかぶっていますが、IIの方が多くかぶっているのでII) と判定できる抽出条件はどうすればよいでしょうか? ちなみに私はVB等は組めません(式ビルダが精いっぱいです。) 回答でそれ以外でお願いします。 いろいろしらべて最初に範囲抽出からスタートし between and でやってみましたが、その場合範囲と最大が同じものが 2重計上されていました。(抽出条件難しいです。) 例があると助かります。 よろしくお願いします。

みんなの回答

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

普通に考えると、簡単に、行きそうに無いね SQLとしては、こんな感じ SELECT データあいうえおテーブル.*, かきくけこテーブル.判定, かきくけこテーブル.範囲1, かきくけこテーブル.範囲2, IIf([データあいうえおテーブル]![最大]<[かきくけこテーブル]![範囲2],[データあいうえおテーブル]![最大],[かきくけこテーブル]![範囲2])-IIf([データあいうえおテーブル]![最小]<[かきくけこテーブル]![範囲1],[かきくけこテーブル]![範囲1],[データあいうえおテーブル]![最小]) AS 判定数値 FROM かきくけこテーブル, データあいうえおテーブル; これの結果が・・・ 人 最小 最大 判定 範囲1 範囲2 判定数値 A 1 10 I 0 14 9 A 1 10 II 14 26 -4 A 1 10 III 27 30 -17 B 11 20 I 0 14 3 B 11 20 II 14 26 6 B 11 20 III 27 30 -7 C 21 30 I 0 14 -7 C 21 30 II 14 26 5 C 21 30 III 27 30 3 の感じ これの人のグループで、判定数値の最大値を引用すると言う事に、なります サブクエリで、1つのSQLにするのも手だし、別のクエリで連結して、最大値の者だけをリスト化すると言うのも可能 ただし、「判定数値」をはじき出すところの考え方が、少々変かな?って引っかかってるけど・・・大体、こんな感じでやるんだよって、回答ね

関連するQ&A

専門家に質問してみよう