SQL文で困っています。
ご教授下さい。
下記のようなデータがあった場合、それぞれの区分毎に
年月が最大(最新)のデータを取得したいです。
(実際には1レコードにその他項目があり、それらも取得します。)
<検索対象データ>
区分 年月 金額
-----------------------------
A 200412 600
A 200503 560
B 200311 600
B 200508 1000
B 200504 560
C 200508 400
C 200301 1100
<取得したいデータ>
区分 年月 金額
-----------------------------
A 200503 560
B 200508 1000
C 200508 400
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
テーブル名をXXXとすると次のようなSQLでよいと思います。
(最善の方法かどうかは自信がないですが)select B.* from (select 区分, max(年月) as 年月 from XXX group by 区分) As A
inner join XXX as B on A.区分 = B.区分 and A.年月 = B.年月
order by B.区分
早々のご回答ありがとうございました。
inner joinを使えばよかったんですね。
希望通りのデータを取得することが出来ました!
No.5
- 回答日時:
すいません、下の#4のSQLに1箇所間違いがありました。
select WK1.区分, WK1.年月,
WK2.金額
from テーブルA WK2,
(select max(年月) as 年月,
区分 as 区分
from テーブルA
~~~~~~~~~~
group by 区分) WK1
where WK2.区分 = WK1.区分
and WK2.年月 = WK1.年月
ご回答ありがとうございました。
サブクエリーのうまく出来ず、悩んでいましたが
理解できました。
希望通りのデータを取得することが出来ました!
皆様、ありがとうございました。
いくつか方法を教えた頂きましたので、あとは実際に
早く取得できる方を使ってみようと思います。
No.4
- 回答日時:
副問合せを使って以下のようなSQLではいかがでしょうか(^^;
select WK1.区分, WK1.年月,
WK2.金額
from テーブルA WK2,
(select max(年月) as 年月,
区分 as 区分
from テーブルB
group by 区分) WK1
where WK2.区分 = WK1.区分
and WK2.年月 = WK1.年月
No.1
- 回答日時:
年月をグループ化して、金額の最大値を取得ってところでしょうか?
SELECT *,MAX(金額) FROM テーブル名 GROUP BY 年月
これでどうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- SQL Server これをSQL文で出来るでしょうか? 1 2023/03/26 02:16
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) VBAで重複データを確認したい 5 2022/10/07 16:24
- その他(データベース) ORMについて 1 2022/06/18 10:07
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- 家賃・住宅ローン 住宅ローン控除の申請について教えてください 3 2023/02/25 09:07
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
2つのテーブルを結合して最大値を取得したい
SQL Server
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
-
4
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
5
<SQL>重複しているデータの場合は最新の日時のものを取得したい
SQL Server
-
6
count(1)とcount(*)の違い
Oracle
-
7
[ BETWEEN ] vs [ >= AND <= ]
MySQL
-
8
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
9
複数テーブルのMAX値の行データを取得したい
Oracle
-
10
GROUP BYでエラーが発生
SQL Server
-
11
Unionの結果全体をOrder By したい。
SQL Server
-
12
他のデータベースとのテーブル結合
SQL Server
-
13
ウォッチ式の文字数制限について
Visual Basic(VBA)
-
14
ACCESS VBAの実行時エラーなんですが
PowerPoint(パワーポイント)
-
15
【Transact-sql】 where条件、inのパタメータを変数に持たせる方法
SQL Server
-
16
オラクルではできるのにSQLSERVERではサブクエリーで複数キーを指定できない?
SQL Server
-
17
SQL GROUPで件数の一番多いレコードのみ取る
Oracle
-
18
SELECT文で、指定カラム以外の全カラムを一括指定って可能でしょうか
MySQL
-
19
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
20
sqlserverで集計結果をUPDATEしたいです
SQL Server
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのSQLで、NULLかNULLでな...
-
sqlserverで集計結果をUPDATEし...
-
オラクルではできるのにSQLSERV...
-
Access 2010動きが遅い
-
違いを教えてください
-
更新クエリでキー違反
-
片方のテーブルにないデータを...
-
アクセス 日付抽出(年月のみ)...
-
accessでのリンクテーブルの更新
-
シャープレジスター エラーコード
-
AccessのSQLで、FROM句の構文エ...
-
「マスタ」と「テーブル」の違...
-
ACCESS 一番最新の日付の金額...
-
2つのテーブルから条件に一致...
-
3つ以上のテーブルをUNIONする...
-
エクスポート時の改行コードに...
-
SELECT時の行ロックの必要性に...
-
Accessにインポートしたら並び...
-
accessテーブル作成クエリを実...
-
[ BETWEEN ] vs [ >= AND <= ]
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのSQLで、NULLかNULLでな...
-
オラクルではできるのにSQLSERV...
-
sqlserverで集計結果をUPDATEし...
-
MAX値を条件にデータを取得する...
-
アクセス 日付抽出(年月のみ)...
-
AccessのSQLで、FROM句の構文エ...
-
更新クエリでキー違反
-
ACCESSで複数テーブルを結合し...
-
sqlserverで対象のレコードを削...
-
違いを教えてください
-
accessでのリンクテーブルの更新
-
シャープレジスター エラーコード
-
sqlplusでバックスペースが効か...
-
sqlserverで同一キー単位で金額...
-
プライマリーキーで同じ値をUPD...
-
Access2000へのインポートエラー
-
レコードの有無をすばやく検索...
-
片方のテーブルにないデータを...
-
SQLで'ABC'をDBの'AB'にHIT
-
access前月差分クエリ書き換え...
おすすめ情報