2016-12-22 4 views
0

Ich versuche eine SQL-Abfrage zu schreiben, die Positionen von einer Gruppe (Groupabcd) in eine andere vorhandene Gruppe (GroupEFGH) verschiebt. Alle Positionen werden in einer Tabelle namens 'holdings' gehaltenSQL - Verschieben von Positionen von einem Portfolio in ein anderes

Das Endergebnis sollte keine Positionen mehr in GroupABCD haben.

Ex)

Aktuelle Tabelle:

GroupABCD 
Holdings: 
Google 
Apple 
IBM 

GroupEFHG 
Holdings: 
Facebook 
Twitter 

End Ergebnis:

GroupABCP: 
No Holdings 

GroupEFHG: 
Holdings: 
Facebook 
Twitter 
Apple 
Google 
IBM 
+0

Post-Schema. –

+0

Es ist völlig unklar, wie Ihre Tabellen definiert sind. Bitte ** [bearbeiten] ** Ihre Frage und fügen Sie die create table-Anweisungen für diese Tabellen hinzu. Außerdem: Welches DBMS benutzt du? –

+0

PLease post Ihre Schema-Einrichtung und alle Möglichkeiten, die Sie versucht haben, dies auf Ihrem zu erreichen. Es sollte ein ziemlich einfacher Update-Befehl sein. – MageeWorld

Antwort

0

Versuch:

DECLARE @toDelete TABLE (del_Holdings NVARCHAR(100)) 
MERGE GroupEFHG t 
USING GroupABCD s 
ON t.Holdings= s.Holdings 
WHEN NOT MATCHED BY TARGET THEN 
    INSERT (Holdings) 
    VALUES (s.Holdings) 
OUTPUT 
    INSERTED.Holdings into @toDelete; 

DELETE ABCD FROM GroupABCD ABCD INNER JOIN @toDelete on Holdings = del_Holdings 
Verwandte Themen