• ベストアンサー

SQL文

Oracle初心者なのですみません 助けてください。 TBL 日付,区分,開始番号,終了 2006/10/11 ,A,1,10 2006/10/11 ,B,20,22 見たいなTBLがあって、日付を指定すると 開始・終了の範囲を出力するSQL文を書きたいのですが・・・ 出力イメージは 2006/10/11,A,1 2006/10/11,A,2 2006/10/11,A,3 2006/10/11,A,4 | 2006/10/11,A,10 でこれをそのまま、新規TBLに追加したいのですが・・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • xKENx
  • ベストアンサー率65% (21/32)
回答No.2

ソースとなるレコード1行に対してN行を生成するにはループ処理が必要で、通常のDMLでは無理と思います。 PL/SQLのサンプルを書いてみましたので参考になれば。 DECLARE CURSOR C IS SELECT "日付", "区分", "開始番号", "終了" FROM "TBL" WHERE "日付" BETWEEN '2006-10-11' AND '2006-10-11' ; LOOP_IDX NUMBER; BEGIN FOR R IN C LOOP FOR LOOP_IDX IN R."開始番号"..R."終了" LOOP INSERT INTO "新規TBL" ("日付", "区分", "番号") VALUES (R."日付", R."区分", LOOP_IDX) ; END LOOP; END LOOP; COMMIT; END;

aji70
質問者

お礼

やっぱり難しいのですね PL/SQLを使ってみます ありがとうございました

その他の回答 (1)

回答No.1

SQLの実行は何で行うのでしょうか。VisualBasicなどの開発言語、またはOracle側だけ?

aji70
質問者

補足

OracleのSQLのみでやりたいんですよ

関連するQ&A