• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessのクエリで複数カラムの最大値表示)

Accessのクエリで複数カラムの最大値表示

このQ&Aのポイント
  • Accessのクエリを使用して複数のカラムの中から最大のカラムデータを表示する方法について教えてください。
  • テーブル名がTBLで、カラムA、B、Cがあり、いずれも整数です。カラムA、B、Cの中から最大のデータを表示したいです。
  • SQL文でIF関数を2回使用せずに一発で最大値を表示させる方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.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/ 参考に。

Hirorin_20
質問者

お礼

ありがとうございます。 今回はカラム数が3なのでIFで間に合わせます。 カラム数が多いときのために勉強いたします。

その他の回答 (2)

回答No.2

そもそもテーブル設計がRDBに合ったものになっていない(「正規化されていない」と表現されます)ので、そのような複雑な処理をするか、ユーザー定義関数を作成するしかないですね。 下記のように正規化された設計にすれば、 ID 種別 数値 1  A   10 2  A   14 3  A   12 4  B   21 ・・・・・ SELECT 種別, Max(数値) AS D FROM TBL GROUP BY 種別; とできます。

Hirorin_20
質問者

お礼

ご指摘ありがとうございます。 現実世界では教科書通りしていたのでは間尺に合わないこともあるのです。

回答No.1

SELECT A,B,C, IIf(A<B,IIf(B<C,C,B),A) AS D FROM TBL; こう書くしかない。

Hirorin_20
質問者

お礼

ありがとうございました。

関連するQ&A