- PR -

SQLについてお聞きしたいのですが

1
投稿者投稿内容
overpress
会議室デビュー日: 2005/06/02
投稿数: 1
投稿日時: 2005-06-02 20:29
ど初心者です。
oracle8i,os:Win2kです。
同じ構成の表Aと表Bの列1を比較し、表Bの列1の値が表Aの列1にない
行を、表Cの列2の上位3件(表Bの列2と表Cの列1は関連付いています)
を対象に表Bから表Aへ挿入したいと思っていますが,これはSQLで実現で
きますでしょうか?ご教授頂ければありがたいです。
スレ違いならすいません。

表A 表B 表C     
列1列2 列1列2 列1列2
1 A 5 F ⇔ あ 2
2 B 6 G ⇔ い 1
3 C 7 H ⇔ う 3
4 D 8 I ⇔ え 4
5 E 9 J ⇔ お 5

<期待する結果>
表A
列1列2
1 A
2 B
3 C
4 D
5 E
6 G
7 H
8 I




TLC
大ベテラン
会議室デビュー日: 2005/05/31
投稿数: 152
お住まい・勤務地: 東京都
投稿日時: 2005-06-02 23:06
端的にお答えしますと,できます。でしょうか。

単純に,結合,選択,差 と実行すれば目的の追加対象を抽出することができます。
これを Oracle 用にブラッシュアップすればよいわけです。

SELECT TOP 3 [B1],[B2] FROM [B] INNER JOIN [C] ON [B].[B2] = [C].[C1]
 WHERE [B].[B1] NOT IN (SELECT [A1] FROM [A]) ORDER BY [C].[C2]
1

スキルアップ/キャリアアップ(JOB@IT)