テーブル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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
2つのテーブルを結合して最大値を取得したい
SQL Server
-
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
複数テーブルにまたがるmax
PostgreSQL
-
-
4
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
5
2つの列からの最大値取得
PostgreSQL
-
6
GROUP BYを行った後に結合したい。
Oracle
-
7
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
8
外部参照してるキーを主キーにすることは可能?
その他(データベース)
-
9
含まない言い方ってどうしたらいいんでしょうか
日本語
-
10
SELECTで1件のみ取得するには?
Oracle
-
11
inner joinをすると数がおかしくなります
MySQL
-
12
キー毎の、ある列のmaxのレコードを取得し、別の列の値を取得したい
SQL Server
-
13
Oracle:グループごとに最大日付の行を1件取得
Oracle
-
14
アクセスVBAのMe!と[ ]
Access(アクセス)
-
15
group byで指定したカラム以外のカラムの値を取得したい
PostgreSQL
-
16
SQLServer2005のSQL文での別名の取り扱い
SQL Server
-
17
3つ以上のテーブルをUNIONするのは現時的でないでしょうか?
MySQL
-
18
SELECT 文 GROUP での1件目を取得
SQL Server
-
19
SQLPLUSで結果を画面に表示しない
Oracle
-
20
データベース関係で、データの洗い替えとはどのような事を行うことでしょう
IT・エンジニアリング
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
MERGE文を単体テーブルに対して...
-
select句副問い合わせ 値の個...
-
SELECTの結果で同一行を複数回...
-
select insertで複数テーブルか...
-
COUNTの取得方法(?)について...
-
複数テーブルのMAX値の行データ...
-
SQL GROUPで件数の一番多いレコ...
-
unionの結果は集計はできないで...
-
SQL文で質問です
-
外部結合とor条件混在の記述方法
-
固定値を含む結合と複数テーブ...
-
SET句内で複数の条件を指定して...
-
結合と副問い合わせの違い
-
oracleの分割delete
-
DELETE 文とEXISTSの使い方につ...
-
他のテーブルを参照した値はupd...
-
Accessで別テーブルの値をフォ...
-
Oracleでの文字列連結サイズの上限
-
SQL文で右から1文字だけ削除す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
select insertで複数テーブルか...
-
複数テーブルのMAX値の行データ...
-
固定値を含む結合と複数テーブ...
-
SQL GROUPで件数の一番多いレコ...
-
unionの結果は集計はできないで...
-
他のテーブルを参照した値はupd...
-
外部結合とor条件混在の記述方法
-
SET句内で複数の条件を指定して...
-
oracleの分割delete
-
DELETE 文とEXISTSの使い方につ...
-
集計後の数値が倍になる
-
unionでマージした副問合せを結合
-
updateの一括実行
-
サブクエリ同士をLEFT JOIN
-
select文でフリーズします。
-
COUNTの取得方法(?)について...
おすすめ情報