
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
SELECTで1件のみ取得するには?
Oracle
-
2つのテーブルを結合して最大値を取得したい
SQL Server
-
4
単一グループのグループ関数ではありません。
Oracle
-
5
キー毎の、ある列のmaxのレコードを取得し、別の列の値を取得したい
SQL Server
-
6
複数列の最大値を求めたい
SQL Server
-
7
<SQL>重複しているデータの場合は最新の日時のものを取得したい
SQL Server
-
8
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
9
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
10
SELECT 文 GROUP での1件目を取得
SQL Server
-
11
GROUP BYを行った後に結合したい。
Oracle
-
12
SQL文のwhere条件文で使う <> の意味はなんですか
その他(データベース)
-
13
複数テーブルのMAX値の行データを取得したい
Oracle
-
14
テーブルの最後(最新)のレコードを抽出したい
MySQL
-
15
テーブルからのselectにおいてデータの有無により結果をわけたい
PostgreSQL
-
16
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
17
あるフィールドの最大値を条件にデータを抽出する方法
その他(データベース)
-
18
ACCESS 一番最新の日付の金額を出したいのですが・・
その他(データベース)
-
19
Unionの結果全体をOrder By したい。
SQL Server
-
20
SQL Left Join で重複を排除するには
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
違いを教えてください
-
5
オラクルではできるのにSQLSERV...
-
6
ACCESSのSQLで、NULLかNULLでな...
-
7
アクセス 日付抽出(年月のみ)...
-
8
sqlserverで対象のレコードを削...
-
9
IDが重複した場合、その他のデ...
-
10
条件付き合計をSQLで
-
11
シャープレジスター エラーコード
-
12
検索キーの設定手法
-
13
sqlplusでバックスペースが効か...
-
14
更新クエリでキー違反
-
15
Access 2010動きが遅い
-
16
sqlserverでUPDATEできません
-
17
「マスタ」と「テーブル」の違...
-
18
2つのテーブルから条件に一致...
-
19
ACCESS 一番最新の日付の金額...
-
20
Accessにインポートしたら並び...
おすすめ情報
公式facebook
公式twitter