- - PR -
INSERT INTO文について教えてください。
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-24 17:45
oracle8iです。
table1 : データ件数を取得したい。この場合は2件。 TBL1 TBL2 TBL3 1 2 3 1 2 2 table2 : 1件のみのデータが入っています。項目1つ、データも1件。 NO1 100 今は以下のように組んでいます。 これだと、TEST_TBL1の件数が0件の場合に、WK_TABLEのNO1にNULLが挿入されてしまいます。TEST_TBL1の件数が0件の場合でも、NO1にはTEST_TBL2のNO1の値を取得したいのですが、いい方法はありますでしょうか?よろしくお願い致します。 INSERT INTO WK_TABLE ( NO1, NAME, DATA_COUNT, TIME_STAMP ) SELECT MAX(B.NO1),'NAME', COUNT(*), SYSDATE FROM table1 A, table2 B ; selectの結果:TEST_TBL1に2件データがある場合(これでOK) 100,NAME,2,DATE selectの結果:TEST_TBL1にデータが無い場合(現状) NULL,NAME,0,DATE selectの結果:TEST_TBL1にデータが無い場合(希望する結果) 100,NAME,0,DATE | ||||||||||||
|
投稿日時: 2006-02-24 17:59
INSERT INTO WK_TABLE ( NO1, NAME, DATA_COUNT, TIME_STAMP )
SELECT NVL(MAX(B.NO1),0),'NAME', COUNT(*), SYSDATE FROM table1 A, table2 B ; でどうでしょう? [ メッセージ編集済み 編集者: 温州蜜柑 編集日時 2006-02-24 18:02 ] [ メッセージ編集済み 編集者: 温州蜜柑 編集日時 2006-02-24 18:03 ] | ||||||||||||
|
投稿日時: 2006-02-24 18:06
この回答だと、
selectの結果:0,NAME,0,DATE になってしまいますよね? selectの結果:100,NAME,0,DATE 上記のような結果が出て欲しいのですが。table2の100は取得したいのです。 以上、よろしくお願い致します。 | ||||||||||||
|
投稿日時: 2006-02-24 18:13
ちょっと誤解してました。申し訳ないです。 現在考え中... | ||||||||||||
|
投稿日時: 2006-02-24 18:19
これでどうでしょう?
[ メッセージ編集済み 編集者: 温州蜜柑 編集日時 2006-02-24 18:20 ] | ||||||||||||
|
投稿日時: 2006-02-24 18:23
9iしかないので、9iで動作確認しましたが、
こんなSQLは動作しますか?
#編集追加 INSERT INTOを頭につければINSERTとして動作するので省き SELECT文のみ記載しました。 INSERT込みで動作確認をしています。 [ メッセージ編集済み 編集者: 夏椰|。σ)o 編集日時 2006-02-24 18:24 ] | ||||||||||||
|
投稿日時: 2006-02-24 18:27
Oracleは環境が無いので確認していませんが、
で良いのではないでしょうか? | ||||||||||||
|
投稿日時: 2006-02-24 18:48
いろいろ回答が出てますが・・・
は、8i の正確なバージョンが不明なのでなんとも言えませんが、 スカラー副問い合わせが可能ならいいでしょうね。 使えない場合は
こんな感じでどうでしょうか? [ メッセージ編集済み 編集者: かずくん 編集日時 2006-02-24 18:54 ] | ||||||||||||
