MYSQLで連結したフィールドの枝番の最大値を表示する方法

このQ&Aのポイント
  • MYSQLのテーブルで連結したフィールドの枝番の最大値を表示する方法について教えてください。
  • テーブルの枝番をマイナーチェンジのバージョンとして考え、連結したフィールドの枝番の最大値を求める方法を知りたいです。
  • 質問者は、MYSQLで連結したフィールドの枝番の最大値を表示する方法がわからないと言っています。具体的な状況として、テーブル内のフィールドを連結し、その結果の枝番の最大値を取得したいとのことです。
回答を見る
  • ベストアンサー

フィールドを連結しグループ化した時の値の枝番の最大値を常に表示

フィールドを連結しグループ化した時の値の枝番の最大値を常に表示 すいません。MYSQLでこんなことができるのかお教えください。 mysqlバージョンは、5.0.45を使用しています。 1.以下のような図面を管理するテーブルがあるとします。 例 テーブル:a(図面管理) a_id(id) a1(図番) a2(種類用紙サイズ) a3(枝番) a4(図面名) a_id a1 a2 a3 a4 1   1 3P 0 aaaa 2   2 3P 0 bbbb 3   2 3P 1 bbbb 4   1 4P 0 cccc 5   1 4P 1 cccc 6   1 4P 2 cccc 2.このテーブルのa1とa2を連結したとします。(連結フィールド:ren) ※a1とa2を連結した名称を図面名として使用しています。 ※a3が枝番で図面のマイナーチェンジのバージョンだとお考えください。 a_id a1 a2 a3 a4  ren 1   1 3P 0 aaaa 13P 2   2 3P 0 bbbb 23P 3   2 3P 1 bbbb 23P 4   1 4P 0 cccc 14P 5   1 4P 1 cccc 14P 6   1 4P 2 cccc 14P 3.この連結したフィールド(ren)の枝番(a3)の最大値(max_a3)をSQLで表示させたいのですがどのようにしたらいいのでしょうか? このような結果は求められるのでしょうか? 最終的な結果表示 a_id a1 a2 a3 a4  ren max_a3 1   1 3P 0 aaaa 13P 0 2   2 3P 0 bbbb 23P 1 3   2 3P 1 bbbb 23P 1 4   1 4P 0 cccc 14P 2 5   1 4P 1 cccc 14P 2 6   1 4P 2 cccc 14P 2 説明がへたかもしれませんがよろしくお願いします。

  • MySQL
  • 回答数1
  • ありがとう数5

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

たとえばこんな感じで・・・ なおa1,a2,a3をつかってインデックスを貼っておくように select a_id,main.a1,main.a2,main.a3,a4,concat(main.a1,main.a2) as ren,max_a3 from a as main inner join (select a1,a2,max(a3) as max_a3 from a group by a1,a2) as sub on sub.a1=main.a1 and sub.a2=main.a2

kagorou
質問者

お礼

yambejpさんへ いつもお答えいただきありがとうございます。 こういうことができるとは知りませんでした。 勉強になりました。 本当にありがとうございます。感謝感謝です。

関連するQ&A

  • 連結したフィールドでグループ化し、他のフィールドの最大値のレコード全体を抽出

    図面管理のデータベースをつくっています。 連結したフィールドでグループ化し、他のフィールドの最大値のレコード全体を抽出したいのですが どのようにしたらいいのでしょうか? いろいろ調べたのですがなかなかよい結果が出ません。 お知恵をおかしください。よろしくお願いします。 mysqlバージョン:5.0.45 例 テーブル:a(図面管理) a_id(id) a1(図番) a2(種類用紙サイズ) a3(枝番) a4(図面名) a_id a1 a2 a3 a4 1   1 3P 0 aaaa 2   2 3P 0 bbbb 3   2 3P 1 bbbb 4   1 4P 0 cccc 5   1 4P 1 cccc 6   1 4P 1 cccc このテーブルのa1とa2を連結します。(連結フィールド:ren) a_id a1 a2 a3 a4  ren 1   1 3P 0 aaaa 13P 2   2 3P 0 bbbb 23P 3   2 3P 1 bbbb 23P 4   1 4P 0 cccc 14P 5   1 4P 1 cccc 14P 6   1 4P 2 cccc 14P 連結したもの(ren)をグループ化しますこのとき、枝番の値が高いレコードだけ抽出します。 a_id a1 a2 a3 a4  ren 1   1 3P 0 aaaa 13P 3   2 3P 1 bbbb 23P 6   1 4P 2 cccc 14P この最終的な結果を出す方法をお教えください。 おねがいします。

    • ベストアンサー
    • MySQL
  • アクセス フィールド値を分割したい

    いつも大変お世話になっております。 初心者につき、ご教示いただけますと幸いです。 アクセスのテーブル・フィールドに AAAA,BBBB,CCCC という値が入ってしまうため 「,」を区切りに分割したいです。 テーブル:T_商品 フィールド: 顧客ID|注文内容(連結で入ってしまうフィールド) 0001|AAAA 0002|AAAA,BBBB 0010|AAAA,BBBB,CCCC 0101|AAAA,BBBB,CCCC,DDDD,・・・ といったように、連結した値の数はまちまちで、 最大10個になります。 ちなみに、 これを ↓フィールド名 顧客ID|注文商品   に 0001|AAAA 0002|AAAA 0002|BBBB 0010|AAAA 0010|BBBB 0010|CCCC  ・  ・  ・ といったように、 最終的には 1つのフィールドにまとめたいです。 ご教示のほど、よろしくお願い致します。 尚、前半の「連結値を分割」だけでも テーブル更新(分割毎にフィールドに挿入)できれば、とても助かります! →この場合、予備フィールドなどを作成しておくか、  ワークテーブルなどで処理になりますでしょうか。 是非とも、よろしくお願い致します。

  • mysqlについて

    いつもお世話になっております。 またまたmysqlについて質問させていただきます。 下記のようなテーブルがあります。 tabel A | type_id | member_id | date| | 2 | 45| 2012-6-21 | | 2 | 46| 2012-6-22 | | 2 | 47| 2012-6-19 | | 2 | 48| 2012-6-10 | | 4 | 49| 2012-5-23 | | 4 | 50| 2012-5-24 | | 4 | 51| 2012-5-21 | | 4 | 52| 2012-5-22 | | 3 | 53| 2012-7-25 | | 3 | 54| 2012-7-26 | | 3 | 56| 2012-7-23 | | 3 | 57| 2012-7-24 | | 1 | 58| 2012-8-17 | | 1 | 59| 2012-8-18 | | 1 | 60| 2012-8-25 | | 1 | 61| 2012-8-26 | table B | type_id | name | | 1 | aaaa | | 2 | bbbb | | 3 | cccc | | 4 | dddd | 下記の条件で値を取得するSQLをご教授いただけますでしょうか 1.type_idでまとめたものを3件ずつ取得   (三件の中で一番直近のdateを持っているもの順にtype_idを並べる) 2.type_idのまとめた三件がdateの直近順 3.type_idのそれぞれのnameをくっつける 結果として | type_id | member_id | date|name | 4 | 51| 2012-5-21 |dddd | 4 | 49| 2012-5-23 |dddd | 4 | 50| 2012-5-24 |dddd | 2 | 48| 2012-6-10 |bbbb | 2 | 47| 2012-6-19 |bbbb | 2 | 45| 2012-6-21 |bbbb | 3 | 56| 2012-7-23 |cccc | 3 | 57| 2012-7-24 |cccc | 3 | 53| 2012-7-25 |cccc | 1 | 58| 2012-8-17 |aaaa | 1 | 59| 2012-8-18 |aaaa | 1 | 60| 2012-8-25 |aaaa 説明が下手ですみません…分かりにくければ補足説明いたします…

    • ベストアンサー
    • MySQL
  • ACCESSにて2つのテーブルの比較

    2つのテーブルA,テーブルBがあります。テーブルBのデータ以外のデータを選ぶにはどうのようにすれば良いのでしょうか? テーブルA data--- aaaa bbbb cccc dddd aaaa cccc テーブルB data--- aaaa bbbb 欲しい結果 テーブルA data--- cccc dddd cccc よろしくお願い致します。

  • ACCESSのフォーム上に連番番号を表示したい

    お世話になります フォームは単票型でなく、表型です↓ 例 1 aaaa1 bbbb1 cccc1 2 aaaa2 bbbb2 cccc2 3 aaaa3 bbbb3 cccc3 aaaa1等、右側はテーブルからデータを表示しています この、左の1,2,3、は単なる、表示で関連付けるデータは ありません この単なる1,2,3、はどのようにだすのですか よろしくお願いします

  • SQLでの集計

    下記の様に、「複数のitemを買っているuserと購入されたitem」のテーブルと、 user item ---------------------------------- 田中 AAAA 田中 CCCC 田中 EEEE 北野 DDDD 北野 BBBB 北野 AAAA 小堺 CCCC 小堺 EEEE 松本 EEEE 松本 KKKK 松本 CCCC 松本 DDDD 浜田 BBBB 浜田 DDDD 下記の様な IDに紐付いた 「item」のテーブルから、 ID  item ---------------------------------- 1   AAAA 2   BBBB 3   CCCC 4   DDDD 5   EEEE 下記の様に各itemと各itemを買った場合に一緒に買われるitemの一覧を結果 として表示させたいのですが、クエリの作り方が思い浮かばず、困っています。 ※)可能であれば、買われたitemを表示する際にはbuy1から(左側から)同時購入 回数の多いitemを重複せずに並べて表示したい ID  item  buy1  buy3  buy4  buy5  buy6・・・・ ---------------------------------- 1  AAAA CCCC BBBB DDDD EEEE 2  BBBB DDDD AAAA 3  CCCC AAAA EEEE DDDD KKKKK 4  DDDD AAAA BBBB CCCC EEEE 5  EEEE AAAA CCCC KKKKK 尚、IDと紐付いているitem数は決まっていますが、買われるitemの種類は上記 の様にIDが1~5だけではなく、集計してみないと判らない状況です。 今の所、SQLはACCESS(2003)上にて手打ちしています。 以上、ご教示のほど、宜しくお願い致します。

  • ACCESSのテーブルの行と列を入れ替えたい

    Access2000を使っているのですが、テーブルの行と列を入れ替えて、Excelへエクスポートを試みています。 しかし、Excelへのエクスポートのやり方は解るのですが、テーブルの行と列を入れ替えるやり方が解りません。 具体的には ID| 年月 |用件 01|2005/03|aaaa 02|2005/04|bbbb 03|2005/05|cccc とあるのもを ID  01 02 03 年月 2005/03 2005/04 2005/05 用件 aaaa bbbb cccc というふうに変換したいです。 よろしくお願いします。

  • DTSパッケージでテキストファイルのインポート

    SQLServer2000で、DTSパッケージを使ってテキストファイルをインポートしているのですが、インポート先テーブルに主キーを設定していないためか、インポートするたびにレコードの順番が変わってしまいます。 例) テキストファイル fld1|fld2|fld3 1111|AAAA|aaaa 2222|BBBB|bbbb 3333|CCCC|cccc SQLServerのテーブル fld1|fld2|fld3 2222|BBBB|bbbb 3333|CCCC|cccc 1111|AAAA|aaaa のようになってしまいます。 これをテキストファイル通りのレコード順でインポートするにはどうすればいいのでしょうか? ちなみに実際のファイルにはソートをかけられるフィールドはありません。 よろしくお願いします。

  • Excel抽出のマクロかVBAを教えてください

    A列にxxxがあった場合、その上に存在するIDの値を抽出する方法を教えていただけますでしょうか? 例)xxxがあった場合、IDの値を抽出したい。 以下の場合、ID:1111とID:3333と表示したい。 (ID以降の値はランダムです) A列 ID:1111 aaaa bbbb cccc dddd eexxx ←xxxがあるのでその上のIDを抽出 ffffff ID:2222 aaaa bbbb cccc dddd eeee ffffff ID:3333 aaaa bbbb cccc dddd eexxx ←xxxがあるのでその上のIDを抽出 ffffff

  • ページ移動時にフォームから値を取得できないでしょうか?

    質問させてください。 PHP+MySQLの環境なのですが データを一覧表示させている画面から カテゴリーフィールドで絞り込んで別のリストに移りたいのですが フォームの送信ボタンを使わずにリストメニューから選択時に そのまま選択されたカテゴリーで絞り込んで移動するには どうやるのでしょうか? No カテゴリー タイトル  -------------------------- 1 AAAA あああ 2 BBBB いいい 3 CCCC ううう   ↑ ここの項目をメニューリストで選択した時点で絞り込んで ページ移動したいのですが。 ご説明できる方よろしくお願いします。

    • ベストアンサー
    • PHP