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
-
<SQL>重複しているデータの場合は最新の日時のものを取得したい
SQL Server
-
-
4
GROUP BYでエラーが発生
SQL Server
-
5
count(1)とcount(*)の違い
Oracle
-
6
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
7
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
8
[ BETWEEN ] vs [ >= AND <= ]
MySQL
-
9
「RunSQL」と「Execute」の違い
Access(アクセス)
-
10
Unionの結果全体をOrder By したい。
SQL Server
-
11
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
12
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
13
sqlserverで集計結果をUPDATEしたいです
SQL Server
-
14
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
15
SQL Date型の列から年月だけを取得したい
SQL Server
-
16
GetPrivateProfileStringでiniファイル読込む処理を詳しく知りたいのですが・・・
C言語・C++・C#
-
17
DATE型変数を初期化する方法
Visual Basic(VBA)
-
18
有無、要否、賛否、是非、可否、当否…これらの言葉について
その他(教育・科学・学問)
-
19
SQL文のwhere条件文で使う <> の意味はなんですか
その他(データベース)
-
20
コンボボックスにリストが表示されません・・・
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sqlplusでバックスペースが効か...
-
アクセス 日付抽出(年月のみ)...
-
違いを教えてください
-
ACCESSで複数テーブルを結合し...
-
「マスタ」と「テーブル」の違...
-
2つの項目が重複するレコード...
-
Access VBA [リモートサーバー...
-
SybaseのBCPでファイル上書き
-
SQLServer2005 データのCSVファ...
-
SQLServer2005でフラットファイ...
-
access ADODB でテーブルを更新...
-
数百万件レコードのdelete
-
bcpインサートでのフォーマ...
-
Google検索はなぜ早い?
-
ACCESSでのエクセルインポート...
-
エクスポート時の改行コードに...
-
SQL Server のデータをCSVファ...
-
動的SQL (その2)
-
Accessにインポートした複数の...
-
Accessで在庫管理を
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
オラクルではできるのにSQLSERV...
-
ACCESSのSQLで、NULLかNULLでな...
-
sqlserverで集計結果をUPDATEし...
-
アクセス 日付抽出(年月のみ)...
-
ACCESSで複数テーブルを結合し...
-
MAX値を条件にデータを取得する...
-
更新クエリでキー違反
-
AccessのSQLで、FROM句の構文エ...
-
違いを教えてください
-
sqlserverで対象のレコードを削...
-
シャープレジスター エラーコード
-
accessでのリンクテーブルの更新
-
access前月差分クエリ書き換え...
-
sqlplusでバックスペースが効か...
-
MySQLのON DUPLICATE KEY UP
-
sqlserverで同一キー単位で金額...
-
sqlserverでUPDATEできません
-
Access2000へのインポートエラー
-
片方のテーブルにないデータを...
-
集計処理について
おすすめ情報