データのセットを取得し、既存のフィールドに基づいて日付行を追加して展開したいと考えています。例えば、私が持っている場合は、以下の表(TABLE1
):1行のクエリを作成する方法Oracle内に複数の行が含まれています
ID NAME YEAR
1 John 2001
2 Jim 2012
3 Sally 2005
私は(そこから私は毎月の情報を追加することができますヶ月のセットを含めるには、このデータを取得し、別のテーブルに入れ、それを展開したいです)。私は最初のレコード(John
)を見れば、私の結果は次のようになります。
ID NAME YEAR MONTH
1 John 2001 01-JAN-2001
1 John 2001 01-FEB-2001
1 John 2001 01-MAR-2001
...
1 John 2001 01-DEC-2001
私は私の毎月の日付を導出するためのメカニズムを持っていますが、どのように私はTABLE2
を作るためにTABLE1
からデータを抽出します。ここで簡単なクエリですが、もちろん、私はORA-01427 single-row subquery returns more than one row
を期待どおりに取得します。一緒にこの2つを置くために、クエリを整理する方法だけでわからない:
select id,
name,
year,
book_cd,
(SELECT ADD_MONTHS('01-JAN-'|| year, LEVEL - 1)
FROM DUAL CONNECT BY LEVEL <= 12) month
from table1 ;
私はこれを行うカント実現が、私は2つのピースを入れてするかどうかはわかりません。レコードを一括処理して、一度に1つのIDにならないようにする予定です。助けてくれてありがとう。
おかげで、これは私が探していたまさにです。このクロスジョイン機能を調べる必要があります。初めて私はそれを聞いた! – Mark