![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちはみなさん。
現在、Oracle10gR2を使用しています。
そこで、以下のようなテーブルが存在します。
table_A(明細テーブル)
denday | cd | suu | kingaku
2011/03/05 | 1| 1| 1000
2011/03/10 | 1| 2| 2000
table_B(マスタ)
cd| henkoday | nm
1 | 2011/03/01| testA
1 | 2011/03/02| testB
1 | 2011/03/06| testC
上記マスタはcd、henkodayで管理しています。
上記table_Aとtable_Bを結合したいと思います。
そこで
select
t1.* ,t2.*
from
(select * from table_A order by denday) t1,
(select * from table_B order by cd,henkoday desc) t2
where
t1.cd=t2.cd
and t1.denday>=t2.henkoday
とした場合、マスタの3件分、明細データの重複ができてしまいます。
それを、直近の該当マスタのみ参照したいのですが、
以下のようなデータ抽出
table_A(明細テーブル) table_B(マスタ)
denday | cd | suu | kingaku | cd | henkoday | nm
2011/03/05 | 1 | 1 | 1000 | 1 | 2011/03/02 | testB
2011/03/10 | 1 | 2 | 2000 | 1 | 2011/03/03 | testC
そのSQLがわかりません。
どうかよろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんなかんじでどうでしょうか。
select cd,denday,suu,kingaku,t2cd,henkoday,nm
from(
select
t1.*,t2.cd t2cd,t2.henkoday,t2.nm
,row_number() over(partition by t1.cd,t1.denday order by t2.henkoday desc)rnum
from table_A t1
inner join table_b t2 on (t1.cd = t2.cd and t1.denday >= t2.henkoday))
where rnum = 1;
とか
select t1.*,t2.*
from table_A t1
inner join table_b t2 on (t1.cd = t2.cd and t1.denday >= t2.henkoday)
where t2.henkoday = (
select max(henkoday) from table_B t3
where t1.cd = t3.cd
and t1.denday >= t3.henkoday);
です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- PostgreSQL SQLで検索結果の記事を表示したい 1 2022/04/28 21:03
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルで複数フォルダ...
-
副問合せにLIKE文を使う方法は...
-
複数レコードの完全一致
-
sqlで質問です。 Aテーブルは店...
-
SQLの中上級者へのレベルアップ...
-
SELECTによる表の変換方法を教...
-
開発対象となるアプリケーショ...
-
質問です。 下記のテーブルとデ...
-
Oracleですがsqlで質問です。 ...
-
sqlで質問です。 Aテーブルの登...
-
sqlで質問です。 Aテーブルの情...
-
SQLの書き方について
-
SQLについて教えて下さい。 主...
-
sqlで質問です。 idを元にidに...
-
oracleで 10,20, 30, というデ...
-
索引作成について
-
googleプレイの履歴で取得とイ...
-
sql(oracle)で質問です。 テ...
-
オラクルゴールドについて
-
sqlのupdate文で質問です。 テ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CLOB型へのINSERT
-
truncate文で全テーブルを一気...
-
count(1)とcount(*)の違い
-
1つのテーブル・2つの列を結合...
-
テーブル名を[]でくくらないと...
-
主キーが二つのテーブルのselec...
-
複数テーブルのUPDATE
-
Oracle テーブルの列削除
-
oracleのプライマリ・キー名の変更
-
グループの数を取得したい
-
oracle sqlで先頭の1件を取得
-
マンションのベランダでお酒の...
-
sqlplusで実行したSQLの結果を...
-
alter table でチェックボック...
-
Oracle複数の表をもとにmerge文...
-
ある英語の問題のコト
-
CASCADE CONSTRAINTSについて
-
ローマ字入力の文字リスト
-
create table as select
-
SQL2005 のクエリ文について
おすすめ情報