テーブルA、B、Cとも共通して以下のカラムを持っています。
SAGYO_NO (VARCHAR)
SAGYO_DT(DATE型)
TANTO (VARCHAR)
NAIYO(VARCHAR)
SAGYO_NOを指定したA、B、Cのうちで(WHERE SAGYO_NO = '01')、
SAGYO_DTが最新のものの、
SAGYO_DT、TANTO、NAIYOを一回のSQLで取得したいのですが、
うまくできなくて困っています。
いい案がありましたらお願いします。
(例)
テーブルA
01 2011/03/01 AAA BBB
01 2011/03/08 CCC DDD
テーブルB
01 2011/03/05 EEE FFF
テーブルC
01 2011/03/02 GGG HHH
⇒上記の場合、テーブルAの'2011/03/08','CCC','DDD'を取得したいです。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
SELECT SAGYO_NO,SAGYO_DT,TANTO,NAIYO
FROM
(
SELECT U.*, RANK() OVER( ORDER BY SAGYO_DT DESC) RNK
FROM
(
SELECT * FROM
(SELECT * FROM テーブルA
WHERE SAGYO_NO = '01'
UNION ALL
SELECT * FROM テーブルB
WHERE SAGYO_NO = '01')
UNION ALL
SELECT * FROM テーブルC
WHERE SAGYO_NO = '01'
) U
)
WHERE RNK=1;
No.3
- 回答日時:
No.1の方の回答に少し条件追加m(_ _)m
select * from (
select rownum,A.* from
(
--テーブルAのMAXの日付のレコード抽出
select SAGYO_DT,TANTO,NAIYO from テーブルA
where SAGYO_DT in(select max(SAGYO_DT) from テーブルA)
and SAGYO_NO = '01'
union all
--テーブルBのMAXの日付のレコード抽出
select SAGYO_DT,TANTO,NAIYO from テーブルB
where SAGYO_DT in(select max(SAGYO_DT) from テーブルB)
and SAGYO_NO = '01'
union all
--テーブルCのMAXの日付のレコード抽出
select SAGYO_DT,TANTO,NAIYO from テーブルC
where SAGYO_DT in(select max(SAGYO_DT) from テーブルC)
and SAGYO_NO = '01'
) A
--降順で並び替え
order by SAGYO_DT desc)
where rownum = 1;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Oracle SQL update方法 2 2022/06/22 14:07
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
2つのテーブルを結合して最大値を取得したい
SQL Server
-
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
複数テーブルにまたがるmax
PostgreSQL
-
-
4
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
5
2つの列からの最大値取得
PostgreSQL
-
6
GROUP BYを行った後に結合したい。
Oracle
-
7
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
8
含まない言い方ってどうしたらいいんでしょうか
日本語
-
9
SELECTで1件のみ取得するには?
Oracle
-
10
キー毎の、ある列のmaxのレコードを取得し、別の列の値を取得したい
SQL Server
-
11
Oracle:グループごとに最大日付の行を1件取得
Oracle
-
12
inner joinをすると数がおかしくなります
MySQL
-
13
外部参照してるキーを主キーにすることは可能?
その他(データベース)
-
14
VBとアクセスでSQL文に変数を使いたいのですが
Visual Basic(VBA)
-
15
SQL Serverにおける小数部の0表記について
その他(プログラミング・Web制作)
-
16
[SQL]重複内容を持つデータから1件抽出かつ複数のカラムを表示したい
その他(データベース)
-
17
ループ処理の際、最後だけ,"をつけたくない"
Java
-
18
2つのテーブルから条件に一致しないデータ抽出
SQL Server
-
19
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
20
<SQL>条件付きで最小値レコードを抽出する方法
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
MERGE文を単体テーブルに対して...
-
select句副問い合わせ 値の個...
-
SQL GROUPで件数の一番多いレコ...
-
unionでマージした副問合せを結合
-
unionの結果は集計はできないで...
-
外部結合とor条件混在の記述方法
-
SQLの書き方(チェックボックス)
-
同一テーブルの別レコードの内...
-
構成比を求めるSQL文につきまして
-
集計後の数値が倍になる
-
大量にデータを更新するテーブ...
-
固定値を含む結合と複数テーブ...
-
複数テーブルのMAX値の行データ...
-
再起SQL が無限ループします。
-
結合と副問い合わせの違い
-
SELECTの結果で同一行を複数回...
-
件数を取得する方法
-
Oracleでの文字列連結サイズの上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
固定値を含む結合と複数テーブ...
-
複数テーブルのMAX値の行データ...
-
他のテーブルを参照した値はupd...
-
unionの結果は集計はできないで...
-
外部結合とor条件混在の記述方法
-
oracleの分割delete
-
SET句内で複数の条件を指定して...
-
SQL GROUPで件数の一番多いレコ...
-
DELETE 文とEXISTSの使い方につ...
-
COUNTの取得方法(?)について...
-
集計後の数値が倍になる
-
SQLの書き方(チェックボックス)
-
unionでマージした副問合せを結合
-
結合と副問い合わせの違い
-
副問い合わせのinsert文
おすすめ情報