• ベストアンサー

ある項目ごとの最新の値の取得について

こんばんは。 現在、1つのテーブルから値を取得する 部分で困っておりますのでどなたかお力をお貸しください。 以下のようなデータで項目A、項目Bの順番で 一番値の大きいデータを項目Cごとに取得したいと 考えております。(下の例では1行目と4行目) 宜しくお願いします。 ============================ 項目A  項目B  項目C ---------------------------- 100   5000   XXX ---------------------------- 100   1000   XXX ---------------------------- 100   3000   YYY ---------------------------- 200   1000   YYY ----------------------------

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

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

#1です。すみません勘違いしてました。 以下でどうでしょう? CREATE TEMPORARY TABLE `TEMP` SELECT MAX(`項目A`) AS `項目A`,`項目C` FROM `TABLE` GROUP BY `項目C`; SELECT `TEMP`.`項目A`,MAX(`項目B`) AS `項目B`,`TEMP`.`項目C` FROM `TEMP` INNER JOIN `TABLE` ON `TABLE`.`項目A`=`TEMP`.`項目A` AND `TABLE`.`項目C`=`TEMP`.`項目C` GROUP BY `TEMP`.`項目C`;

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

テストをしていないので動かない&間違ってるかもしれませんが。 selet * from TABLE group by C order by A desc,B desc

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

MySQLのバージョンがわからないと回答がむだになります。 また以下のように仕様提示が著しく不足しています。 >最新の値の取得 最大の値でよいのですね? 最大値が同数あるときはどうすればいいのですか? 適当に1つヒットさせればいいのか? 両方表示すのでしょうか? A項とB項の最大値がともにおなじレコードだった場合 表示は1つでよいのか?おなじものを2つ表示するのか?

morimori7
質問者

補足

説明が足らず申し訳ございません。 MySQLのバージョンは 4.0.25-Maxです。 >最大の値でよいのですね? その通りです。 >最大値が同数あるときはどうすればいいのですか? >適当に1つヒットさせればいいのか? >両方表示すのでしょうか? もうひとつタイムスタンプを登録している項目が ありますのでその項目が最新のデータ1件を取得したいと思っております。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SQLについての質問です

    SQLの質問です。(Oracle) 二つのテーブル T1, T2 に、それぞれ三つのカラム A, B, C があり、A, B の値が同じである行においてT1のCからT2のCへ値をコピーするSQLを教えてほしいです。 以下、そのデータ例です。 テーブル T1 A B C --------- 1 AAA 10 2 BBB 20 3 CCC 30 テーブル T2 A B C --------- 1 AAA 0 2 XXX 0 4 YYY 0 この場合、結果としてテーブル T2は1行目だけがカラム Cの値がT1からコピーされ A B C --------- 1 AAA 10 2 XXX 0 4 YYY 0 としたいです。

  • ある条件でのSQLの取得方法について

    以下の条件でのSQLのデータの取得方法が分かりません。 2つのテーブルがあるとします。 ・テーブルA キー   項目1 10     X 20     Y ・テーブルB キー  項目2  項目3 10     5    C 10     6    D 12     6    E ここで取得する条件として ■テーブルAにあるのは、必ず取得します。 ■テーブルAのキーとテーブルBのキーは繋がり、繋がったテーブルBの情報は  別レコードとして取得します。 ■テーブルAのキー1つに対して、テーブルBのキーは無いかも知れないし、  複数件あるかも知れません。  無い場合はテーブルAの情報のみを出力し、複数件ある場合はその全てを出力します。 ■テーブルBの項目2が同じ値のデータがある場合、テーブルBを出力したレコードと  同じレコードに、項目2が同じデータの情報を出力します。  項目2が同じデータが無い場合はこの情報は出力しません。  項目2が同じ値のデータは最大2件しかありません。 上記の例の場合に出力したい結果 ・出力テーブルC キー  フラグ   項目1  項目2  項目3   項目2が同じキー  項目2が同じ値 10  テーブルA   X 10  テーブルB         5    C 10  テーブルB         6    D        12            E 20  テーブルA   Y (テーブルC のフラグとは、テーブルAの情報かテーブルBの情報かを示します) これを出来ればSQL、出来なければPL/SQLで取得したいのですが どちらの場合でも取得の方法に悩んでいます。 どのような方法で取得できるのでしょうか?

  • select insertで複数テーブルから値を取得したい

    環境:oracle9i select insertで、2つのテーブルから値を取得して、1つのテーブルにinsertすることは可能でしょうか? たとえば、以下の場合、どのようなSQL文を書けばよいか、アドバイスいただけますでしょうか。 よろしくお願いします。 insertしたいテーブル:A Aテーブルの項目:o,p,q,r,s,t 値を取得するテーブル:B,C Bテーブルの項目:o,p,q,r Cテーブルの項目:o,p,s,t oとpが主キーになっていて、それらが一致するBとCのデータを あわせて、Aにinsertしたいと思っています。 insert into A(o,p,q,r,s,t) select このあと、どのように書けばよいのかがわかりません。

  • EXCELで項目ごとに計算したい

    検索したのですが、どうもうまくひっかからないので 質問させて頂きます。お知恵拝借、お願致します。 EXCELで作成している下記のようなデータがあります。 (毎月1回で、1回につき数百~3万程度出てきます。 機種名、クラス名は、その時々でいくつ出てくるか変わります。) 機種名 台数 クラス XXX   1   A YYY    2   B XXX   3   C ZZZ   1   A YYY   2   B  :    :   : と言ったデータを クラス  A     XXX  1       ZZZ  1 B     YYY  4 C     XXX  3 と言ったように計算して提出するマクロを作りたいと 考えています。ピボットも考えましたが どうもうまく考えが浮かびません… こんな考え方があるよとか、参考になるURLなど 教えて頂けますでしょうか? 宜しくお願い致します。

  • エクセルで別シートの値を取得したいです。

    エクセルで質問があります。 別シートからセル値を取得したいです。 ただ、セル番地は行番号、列番号で指定し、 行、列番号はセルに入力してある値を使いたいです。 例 Aシート(値格納シート) B1セル値=1000 -------------- Bシート(値取得シート) A列=行番号入力 B列=列番号入力 C列=Aシートの取得関数 A2セル値=1 B2セル値=2 C2セル=1000(取得値) C2セルの関数に、A2とB2の値を使って Aシートのセル値を取得したいです。 よろしくお願いします。

  • 2つの列が同じ値の行を取得するSQL

    ご存知の方なら、きっと「簡単だよ~」とおっしゃると思うのですが、教えてください。 テーブルにA,B,Cの3つの列がVARCHAR2であったとします。 AとBが同じ値のCを取得したい場合のSELECT文はどのようにかくのでしょうか。 例 A B C   1 1 a   1 2 b   2 2 c   2 3 d だったばあい、a と c が選択されればOKです。

  • 二つの表の項目を比較して値を取得するSQL

    お世話になります、 二つの表の項目を比較して値を取得するSQLを作成しているのですが、うまくいきません。 具体的には Aテーブル NAME | PRICE ------|------ リンゴ | 100 ------|------ オレンジ | 200 ------|------ ブドウ | 300 ------|------ Bテーブル NAME | PRICE ------|------ リンゴ | 1000 ------|------ オレンジ | 200 ------|------ ブドウ | 1300 ------|------ という二つのテーブルA、Bがあったとします。 このA,Bの二つのテーブルのそれぞれの果物のPRAICEを比較してBのPRICEがアップしている果物を出力するという SQLを教えてください。 <ほしい結果> NAME | PRICE ------|------ リンゴ | 1000 ------|------ ブドウ | 1300 よろしくお願いします。

  • 2つ目のレコードの値を取得するには?

    こんにちは。いつもお世話になりっぱなしです。 今回は、あるテーブルの2つ目以降のレコードの値を取得 できないかなぁと思って質問しました。 テーブルAにBというフィールドがあります。 その中にはア、イ、ウ・・・・とレコードがあるとした場合、 1つ目のレコードは Dfirst("B","A")で取得できますが、 2つ目のレコードはどうやって取得すればいいのでしょうか? 関数で出来れば最高なんですが、無理なようでしたら 別の方法でも構いません。 皆さんのお力をお貸しください。 よろしくお願いします。

  • 表示されているレコードを1つ上にする

    環境:ACCESS2003&XP Pro テーブルとそのテーブルをソースにしたクエリーを元に一覧形式のフォームを作成しています。以下のようなイメージです。 品名  仕様  数量 単価 合計  A   xxx xxx xxx xxx ↑  b   yyy yyy yyy yyy ↑  C   zzz zzz zzz zzz ↑ *↑はボタン 上記の表示で↑ボタンをクリックすると 表示されたレコードがひとつ上に行く方法が わかりません。 よろしくお願いします。 例:上記で品名bの↑ボタンをクリック 品名  仕様  数量 単価 合計  b   yyy yyy yyy yyy ↑  A   xxx xxx xxx xxx ↑  C   zzz zzz zzz zzz ↑

  • 複数updateする時に・・・

    やりたい事: 複数レコードのある項目を1度にupdateたい。 現在のA項目の最大値に+1した値から順にインクリメントした値を入れたい。 例: sampleというテーブルにkey,dataという項目があったとします。 update前 >>> update後 key|data______key|data --+----______--+---- _A_|_1___________A_|_1_ _B_|_2___________B_|_2_ _C_|_3___________C_|_3_ _A_|_0___________A_|_4_ _A_|_0___________A_|_5_ _A_|_0___________A_|_6_ (スペースが入らなくて_にしました見にくいですが) 同じ値をupdateするなら update sample set data=値 where key=A and data=0 これを update sample set data=MAX(data)++ where key=A and data=0 みたいに書けたらいいなぁと思うのですが、1度該当レコードをselectして取得した値を条件に順番に1行づつupdateしないとだめですかね・・・ ちなみに環境はRedHat7.0J上のPostgreSQL7.0.2 です。

このQ&Aのポイント
  • アップデートを行おうとしたところ、パスワードを忘れてしまい操作ができなくなりました。
  • お使いの環境は、Windows10とApple6sで無線LANに接続されています。
  • 関連するソフト・アプリはiPadMP262J/Aで、電話回線は多分アナログ回線です。
回答を見る