
テーブル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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
MERGE文を単体テーブルに対して...
-
固定値を含む結合と複数テーブ...
-
集計後の数値が倍になる
-
SQLで複数の条件がある場合
-
外部結合とor条件混在の記述方法
-
SQL GROUPで件数の一番多いレコ...
-
SQLの書き方(チェックボックス)
-
SET句内で複数の条件を指定して...
-
unionでマージした副問合せを結合
-
ADO VBA 実行時エラー3021
-
Oracleでの文字列連結サイズの上限
-
OracleのSQL*PLUSで、デー...
-
ACCESSの集計クエリで3件ある...
-
使うべきでない文字。
-
Accessで別テーブルの値をフォ...
-
postgresql DELETE後commit...
-
Excelでセルの書式設定を使用し...
-
割合(パーセント)を求めるに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
外部結合とor条件混在の記述方法
-
MERGE文を単体テーブルに対して...
-
SQL GROUPで件数の一番多いレコ...
-
SELECTの結果で同一行を複数回...
-
oracleの分割delete
-
集計後の数値が倍になる
-
固定値を含む結合と複数テーブ...
-
SET句内で複数の条件を指定して...
-
unionでマージした副問合せを結合
-
COUNTの取得方法(?)について...
-
Access 2つのテーブルで数量...
-
他のテーブルを参照した値はupd...
-
SQLの書き方(チェックボックス)
-
SQLで複数の条件がある場合
-
複数テーブルのMAX値の行データ...
-
半角英数字混在データから数字...
-
結合と副問い合わせの違い
おすすめ情報