- 締切済み
アクセス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重計上されていました。(抽出条件難しいです。) 例があると助かります。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Dxak
- ベストアンサー率34% (510/1465)
普通に考えると、簡単に、行きそうに無いね 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にするのも手だし、別のクエリで連結して、最大値の者だけをリスト化すると言うのも可能 ただし、「判定数値」をはじき出すところの考え方が、少々変かな?って引っかかってるけど・・・大体、こんな感じでやるんだよって、回答ね