- - PR -
Oracleでの副問い合わせで教えてください!
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-02-23 15:14
こんにちは。 現在、Oracle11g,VB.netにて在庫管理システムを開発しております。 今回教えていただきたいのは、 『結合する表Aに、表Bの”最新の日付”の1行を表Aに結合したい』 少々表現に乏しいので下記に記します。 ------------------------------------------------------------------- Select A.品名, B.日付 from 品名マスタ A Left join (select Top1 B.日付 from 登録データ B order by B.日付) on A.ID = B.ID WHERE B.ID LIKE @id ※本SQLは複数行を返すことを想定しております。 ------------------------------------------------------------------- ここで副問い合わせの中にOrder句があります。 本来エラーとなりますが、私のやりたい事が伝わりやすい のではないかと考え記述しました。 よろしくご教授下さい。 | ||||||||
|
投稿日時: 2009-02-23 15:41
でどうでしょうか。 (実行していないので上手くいかなかった場合はすみません。) ただし両テーブルに同じ ID のレコードが必ず存在し、 登録データに ID と日付の組み合わせが重複するレコードが無い場合です。 そうでない場合は少し手を加えれば出来ると思います。 | ||||||||
|
投稿日時: 2009-02-23 16:06
Kingさん、108さん 素早い御回答ありがとうございます。
Knigさんへ 頂いた方法を試してみます。 ありがとうございます。 結果をまた報告します。 109さん 説明不足だったようですみません。 表を外部結合したかったのです。外部結合の中でも、 双方の表で1行=1行のjoinを実現するため 副問い合わせのB表の結果を1行にする方法に 苦慮しておりました。 ご返答ありがとうございました。 | ||||||||
|
投稿日時: 2009-02-23 16:16
消してしまいました・・・
以下一部再現します。
行ですか?列ではないですか? 行ならJOINではなくむしろUNIONかなと。 ※言葉の意味を取り違えました。すみません。 データ例と、欲しい結果表を提示したほうが回答しやすいかもしれません。 上記のようなことを投稿していました。
煩悩の数もひとつ増えるとイメージ変わりますねw [ メッセージ編集済み 編集者: 108 編集日時 2009-02-23 16:39 ] | ||||||||
|
投稿日時: 2009-02-23 17:36
Kingさんへ
実行した結果、求めていたデータを取得することが出来ました。 感謝しております。 Pertition という句を始めて目の当たりにしました。 今から深く学習していくことにします。 お世話になりました。 |
1