- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessのクエリで複数カラムの最大値表示)
Accessのクエリで複数カラムの最大値表示
このQ&Aのポイント
- Accessのクエリを使用して複数のカラムの中から最大のカラムデータを表示する方法について教えてください。
- テーブル名がTBLで、カラムA、B、Cがあり、いずれも整数です。カラムA、B、Cの中から最大のデータを表示したいです。
- SQL文でIF関数を2回使用せずに一発で最大値を表示させる方法はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
以前、各レコードの各フィールドを横に 計算して標準偏差を計算する回答を しましたが、質問の場合はフィールドが 3ですが、これがフィールド数が多くなれば Ifでは対応できなくなります。 関数を設定しなければできません。 http://oshiete1.watch.impress.co.jp/qa5910108.html なお、フィールドを横断して最大値を 出す関数が以下のサイトにあります。 http://accesskid.wordpress.com/2010/11/05/%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%A8%AA%E6%96%B9%E5%90%91%E3%81%AB%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B%E9%96%A2%E6%95%B0/ 参考に。
その他の回答 (2)
- hatena1989
- ベストアンサー率87% (378/433)
回答No.2
そもそもテーブル設計がRDBに合ったものになっていない(「正規化されていない」と表現されます)ので、そのような複雑な処理をするか、ユーザー定義関数を作成するしかないですね。 下記のように正規化された設計にすれば、 ID 種別 数値 1 A 10 2 A 14 3 A 12 4 B 21 ・・・・・ SELECT 種別, Max(数値) AS D FROM TBL GROUP BY 種別; とできます。
質問者
お礼
ご指摘ありがとうございます。 現実世界では教科書通りしていたのでは間尺に合わないこともあるのです。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
回答No.1
SELECT A,B,C, IIf(A<B,IIf(B<C,C,B),A) AS D FROM TBL; こう書くしかない。
質問者
お礼
ありがとうございました。
お礼
ありがとうございます。 今回はカラム数が3なのでIFで間に合わせます。 カラム数が多いときのために勉強いたします。