としてネストされたテーブルでテーブルをマージ割引は列が含まれます:私がする必要がどのようなのOracle SQLは、私は2つのテーブルと一つのネストされたテーブルを有するカラム
PROMOTIONID(key)
PRODUCTID(key)
PROMOTIONDESCRIPTION
PROMOTIONENDDATE
MINQTY
DISCOUNTEDPRICE
DISCOUNTEDPRICEPERMIDA
は、表1に表2をマージしている - マッチがあるとき誰一致インサート( を無視していない場合:表中の製品IDのマッチング1と2と表2から、本製品のサブテーブルpromotionIDはマッチpromotionIDは用)
私がこれまでに得た場所ですし、私は、ネストされた一部の難しさを持っている - ON句と句
MERGE INTO PRICES P
USING(SELECT * FROM TMP_PROMO)T
ON(P.ITEM=T.PRODUCTID AND P.STORE=50 AND P.DISCOUNTS.PROMOTIONID=T.PROMOTIONID)
WHEN NOT MATCHED THEN INSERT (P.DISCOUNTS)
VALUES(T.PROMOTIONID,
T.PROMOTIONDESCRIPTION,
T.PROMOTIONENDDATE,
T.MINQTY,
T.DISCOUNTEDPRICE,
T.DISCOUNTEDPRICEPERMIDA);
を挿入して私がいることを知っていますこれは間違っているが、私は実行する方法をどこにも見つけることができない、それ
例: 価格表:
ROW1(1,50、...、11(nested_table [、...)、(12 、...)])
ROW2(2,50、...、nested_table [(10、...)、(12、...)])
新しいプロモーションテーブル:
(15,1、.. 。)
(11,1、...)
ID 15で新しいプロモーションは、ID 11で
やプロモーションをROW1とROW2に追加されます
を追加されません助けてください、 ありがとう
'SELECT ITEM、x。* FROM table1 t1、TABLE(t1.DISCOUNTS)x'のような問合せを使用してネストした表をネスト解除すると、他の通常の問合せと同様にMERGE文の副問合せとして使用できます。 – krokodilko