ある範囲に割り当てられている値を得たいのですが、
どのようなSQLを組めばよいのでしょうか?

例えば、下記の2つのテーブルがあったときに、

氏名 BMI
---------
Aさん 22.6
Bさん 31.1
Cさん 16.8
Dさん 23.9

開値 終値 判定
--------------
0.0 19.9 痩身
20.0 23.9 普通
24.0 99.9 肥満

以下の結果が得たいのです。

氏名 判定
---------
A 普通
B 肥満
C 痩身
D 普通

この例では、3つの範囲しか用意していませんが、
実際はもっとたくさんあり if や case では列挙しきれないのです。

SQLに詳しい方、ご教示ください。

A 回答 (1件)

SELECT 氏名, 判定


FROM 氏名テーブル, 判定テーブル
WHERE BMI BETWEEN 開値 AND 終値;
ってな感じかな。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

四苦八苦して下記のSQLで実現することができました。

SELECT
氏名テーブル.氏名,
判定テーブル.判定
FROM
氏名テーブル, 判定テーブル
WHERE
氏名テーブル.BMI >= 判定テーブル.開値 and
氏名テーブル.BMI <= 判定テーブル.終値;

お礼日時:2011/04/19 22:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


人気Q&Aランキング

おすすめ情報