
テーブル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ランキング
-
棒読みちゃんが起動できないの...
-
子供向けプログラミングのスク...
-
osqleditについて
-
オラクル12C_SQLPlusで実行す...
-
sqlで質問です。 Aテーブルは店...
-
SQLの中上級者へのレベルアップ...
-
SELECTによる表の変換方法を教...
-
開発対象となるアプリケーショ...
-
質問です。 下記のテーブルとデ...
-
Oracleですがsqlで質問です。 ...
-
sqlで質問です。 Aテーブルの登...
-
sqlで質問です。 Aテーブルの情...
-
SQLの書き方について
-
SQLについて教えて下さい。 主...
-
sqlで質問です。 idを元にidに...
-
oracleで 10,20, 30, というデ...
-
索引作成について
-
googleプレイの履歴で取得とイ...
-
sql(oracle)で質問です。 テ...
-
オラクルゴールドについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
外部結合とor条件混在の記述方法
-
MERGE文を単体テーブルに対して...
-
SQL GROUPで件数の一番多いレコ...
-
SELECTの結果で同一行を複数回...
-
oracleの分割delete
-
集計後の数値が倍になる
-
固定値を含む結合と複数テーブ...
-
SET句内で複数の条件を指定して...
-
unionでマージした副問合せを結合
-
COUNTの取得方法(?)について...
-
Access 2つのテーブルで数量...
-
他のテーブルを参照した値はupd...
-
SQLの書き方(チェックボックス)
-
SQLで複数の条件がある場合
-
複数テーブルのMAX値の行データ...
-
半角英数字混在データから数字...
-
結合と副問い合わせの違い
おすすめ情報