• 締切済み

複数列の最大

初心者です。 SQL文で1レコード中の同一バイト数の複数列の最大を抽出したいのですが、書き方がよくわかりません。 A1|A2|A3|A4|A5 の時、A1~A5までで最大の値を抽出したいのですが・・ 何かよい方法がありますか?

みんなの回答

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.1

Select Max(A_All) From ( Select A1 As A_All From TableA Union Select A2 As A_All From TableA Union Select A3 As A_All From TableA Union Select A4 As A_All From TableA Union Select A5 As A_All From TableA ) こんな感じ?

ken_ishi
質問者

お礼

ありがとうございます。 大変参考になりました。

関連するQ&A

  • 最大バイト数を調べるSQL文を教えてください

    SQL初心者です。 初歩的なSelect文だと思うのですが、 以下のSQLの書き方を教えてください。 「テーブルAの列Bに入っている文字列のバイト数のうち、  最大のバイト数の値を返すSQL」 バイト数をすべて取得するのであれば SELECT LENGTHB(B) FROM A になるかと思うのですが、最大のものを 求める書き方がわかりません。 よろしくお願いします。

  • 複数フィールドの最大値を行ごと抽出したい

    ACCESS2010を使用しています。 テーブルデータは以下です。 日付 コード 値a 値b 値c 2014/1/1 aaa 100 50 80 2014/1/1 aaa 80  60 30 2014/1/1 aaa 100 20 90 この時欲しいデータは 2014/1/1 aaa 100 50 80 のみです。 値aの最大値を行ごと抽出したいのです。 エクセルデータをリンクテーブルとしています。 値aを集計『最大』としてクエリを作成しましたがうまくいきません。 過去のSQLの質問なども見ましたが、ACCESS初心者のため理解できず困っています。 そもそも、SQL構文を使わずにクエリウィザードでこの抽出はできるものなのでしょうか… トンチンカンな質問でしたら申し訳ございません。

  • 最大値を含むレコードの抽出

    あるテーブルから、最大値を持つレコードのキーと最大値だけでなく、そのレコードの値を出したいと思います。 最大値をもつレコードを抽出して、元のレコードと結合するしか方法はないのかなと思い、類似した質問があるような気もするのですが、条件が異なるとうまく行かないため、自分なりに考えてみました。 データベースはDB2です。 SELECT a.倉庫,a.品目,a.単価 FROM 在庫マスタ as a where (a.品目,a.単価) in (select b.品目, max(b.単価) from 在庫マスタ as b group by b.品目) つまり、副問合せするときの結合キーが複数あるとSQLがエラーになってしまうようなのです。 結合キーが2つ以上ある時、このようなパターンの対処方法は無いでしょうか?

  • データの絞り込みってどのように処理されていますか?

    AccessVBAで作業しています。 テーブル1の中に、A・B・C・D・E・Fという数値型のフィールドがあり、レコード数は6万件とします。 A=100 B=50 のA~Fのレコードをまず取り出し、  レコード件数が1件ならF列の値を表示、  レコード件数が複数ならC列の最大値を含むレコードを選択。   それでレコード件数が1件ならF列の値を表示。   それでもレコード件数が複数ならDの最大値を含むレコードを選択。    それで件数が1件ならF列の値を・・・    それでも複数件ならE列の最大値を・・・ と続きます。 そのたびに元のテーブル1から選択してくるのは効率が悪い気がします。 みなさんはどのように処理されるのでしょうか。 また、レコードセットを使用したSQLの書き方がわからず困っています。 どなたか教えていただけませんか? 何卒よろしくお願いいたします。

  • ACCESSで抽出したフィールドに同じレコードにある値を複製したい

    A、B、Cという列があって、Aの列の値が空欄(NULL)であるレコードを抽出し、そのレコードのAの列にBの値をコピー(複製)したいのですが・・・・  説明が下手ですみません。もしクリエで不可能な場合、SQLで記述可能でしょうか。その記述文も教えていただけると助かります。よろしくお願いします。

  • EXCEL 2列交わる条件でフィルタをかけたい!

    初心者ですいません。 A列に対してB列の値を、複数条件でフィルタをかける方法を教えてください。 例えば…下記のように、 B列の(値→⚪︎を含まない値→×)だけに絞った A列の値を、別のシートに抽出したいと思っています。 ======================== 【フィルタ前】 A列 B列 ーーーーーーー 1 × 1 × 1 ⚪︎ ーーーーーーー 2 × ーーーーーーー 3 ⚪︎ 3 × ーーーーーーー 4 ⚪︎ ーーーーーーー 5 × 5 × 5 × 【フィルタ結果】 A列 B列 ーーーーーーー 2 × ーーーーーーー 5 × ======================== 1シートに対しデータが1000行位で、 5シートあるので、困っています。 どんな方法でも良いので、宜しくお願いします。

  • access・複数のテーブル・重複除外したデータ

    accessで複数のテーブルで重複しないレコードだけを抽出するSQL文を知りたいです。 フィールドは多数あり、「フィールドの内容が全て一致するレコード」以外のレコードを 重複しないレコードとして抽出したいと思っています。 テーブルは3つ以上ありますが、2つのテーブルで実行するSQL文でかまいません。

  • 1つの列から複数の候補を選ぶ

    こんばんは。いつもお世話になっております。 今回、ひとつの列から5つの候補を抜き出すというものに挑戦しようと思いました。 moziとid列がある moziテーブルと idとcolor列がある colorテーブルの二つがあります。 id mozi  --------- 1 A 1 B 2 A 2 B 2 C 3 A 1 C 1 D 1 E id color --------- 1 緑 2 赤 3 白 というように入っており、 id列で結合しております。 今回、id列で結合後、mozi列にAとBを含む(AND) 場合、colorテーブルのidとcolor列を抽出するということを行いたいのです。 この場合ですと、1と2、緑と赤を抽出したいのです。 select c.id,c.color from color c, mozi m where c.id=m.id and mozi="A" and mozi="B" というsql文しか思い浮かばないのです。 当然mozi列が2列ないためこのsql文は使えないということがわかるのですがどうすれば求めるものがだせるのかわからないのです。 どなたかお分かりの方がいらっしゃいましたらご教授のほうよろしくお願いします。

  • エクセルのA列とB列で重複するレコードのみを抽出して別の列に表示させた

    エクセルのA列とB列で重複するレコードのみを抽出して別の列に表示させたい。 エクセルのA列に約1,000行くらいのデータが有ります。 このA列内で重複レコードがあります。 B列に約1,000行くらいのデータが有ります。 B列内でも重複レコードが有ります。 この条件の中で (1)A列にもB列にあるデータすべて (2)A列にしかないデータすべて (3)B列にしかないデータすべて を抽出したいのですが、どんな方法がありますか? それで (1)をC列 (2)をD列 (3)をE列 に並べて表示させたいです。 さらに抽出されたデータで重複レコードの場合は1件のみで表示したいです。 複数の操作を繰り返すのではなく C,D,E列に式を入れるだけで済ませる事は可能でしょうか? よろしくお願いします。 例    A   B    C   D   E 1-001-002--001--004--007 2-002-002--002--006--008 3-001-001--005--010 4-005-007 5-001-005 6-004-005 7-004-008 8-010-007 9-006-007 A列には001が3個、002が1個、005が1個有ります。 B列には001が1個、002が2個、005が2個有ります。 A列にもB列にも有るのは、001と002と005ですから これがC列に表示されます。 でそれぞれA列にもB列にも複数有りますが、1個として判定なので よって、C列には 001 001 001 001 002 002 005 005 と表示ではなく 001 002 005 と表示したい。 次にD列はA列に有る物だけですから 004 006 010 となります。B列には004は2個有りますが同じ値なので 004 004 006 010 では無く004は1個の表示です。 E列はB列のみのデータなので 007 008 です。 同じくB列には007が3個有りますが1個ともなします。 007 007 007 008 では無く 007 008 です。

  • PHPの文字列型の数字の判別について

    mySQL+PHP初心者です。 $stringNumに格納した値をWhere条件として、 testTable テーブルに格納したレコードから、名前を取得したいのですが、 "0000123"と"123"が同じ結果となってしまいます。   $stringNum = "0000123"; $sql = "SELECT name FROM testTable WHERE (Id = " . $stringNum . " )";   →「鈴木太郎」が抽出 ***********************   $stringNum = "123"; $sql = "SELECT name FROM testTable WHERE (Id = " . $stringNum . " )";   →「鈴木太郎」が抽出 *********************** testTableテーブル   Id    name   0000123 鈴木太郎   0000124 佐々木学 文字列型として、"0000123"と、"123"は、別の値として区別したいのです。 上記のSELECT文だと、"0000123"と、"123"の場合で、 結果が同じ「鈴木太郎」が抽出されてしまいます。 型をしらべると、$stringNumの値は文字列型となっているので、 "0000123"と、"123"は別の値にはるはずですが、 なぜ同じになるのでしょうか? "0000123"と、"123"を別の値として判別させるにはどうすればいいのでしょうか?

    • ベストアンサー
    • PHP