Ich habe 2 Tabellen und eine verschachtelte Tabelle:Oracle SQL - fusioniert Tabelle mit verschachtelter Tabelle als Spalte
1.stores Daten über Produkte, die folgenden Spalten enthalten:
ITEM - product id(key)
STORE - store id(key)
PRICE
NORMAL_PRICE
DISCOUNTS - nested table with info about discounts include columns:
PromotionId(key)
PromotionDescription
PromotionEndDate
MinQty
DiscountedPrice
DiscountedPricePerMida
2- temporäre Tabelle mit neuem Rabatte sind Spalten:
PROMOTIONID(key)
PRODUCTID(key)
PROMOTIONDESCRIPTION
PROMOTIONENDDATE
MINQTY
DISCOUNTEDPRICE
DISCOUNTEDPRICEPERMIDA
Was ich tun muß, ist Tabelle 2 zu 1 Tisch verschmelzen - wenn keine Übereinstimmung sonst ignoriert einfügen (wenn Übereinstimmung ist: Ihre gesuchte Produkt-ID in der Tabelle 1 und 2 und für diesen Artikel Unter Tabelle PROMOTIONID Spiel PROMOTIONID aus Tabelle 2)
Dies ist, wo ich so weit gekommen, und ich habe Schwierigkeiten mit verschachtelten Teil - ON-Klausel und Insert-Klausel
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);
Ich weiß, dass das ist falsch, aber ich kann nicht überall finden, wie es
Beispiel zu tun: Preise Tabelle:
row1 (1,50, ..., nested_table [(11, ...), (12 , ...)])
row2 (2,50, ..., nested_table [(10, ...), (12, ...)])
neue Promo Tabelle:
(15,1, .. ....)
(11,1,)
neuer Promo mit der ID 15 wird hinzugefügt, um zu Row1 und row2
und Promo mit id 11 nicht
Bitte helfen hinzugefügt werden , Danke
Gerade UNNEST der geschachtelten Tabelle eine Abfrage wie folgt aus: SELECT ITEM, x * FROM table1 t1, TABLE (t1.DISCOUNTS) x' und als Unterabfrage in MERGE-Anweisung verwenden, wie jede andere gewöhnliche Abfrage.. – krokodilko