0

Ich bin neu auf dieser Website und ich bin wirklich stecken auf ein großes Update für eine Datenbank durchzuführen. Ich gab eine Liste der Transaktionen, die aktualisiert werden müssen. Hier ist ein kleines Beispiel für die Datenbank zusammen mit der gewünschten Ausgabe am Ende Update Bulk-Daten SQL-Server

Das Ask ist. Ich habe eine Liste von Transaktionen, die die purchaseID auf PurchaseTypeID = 2 zeigt und möchte, dass alle Transaktionen auf eine purchaseID verweisen, die stattdessen die PruchaseTypeID von 5 hat.

+0

fügen Sie bitte einige DDL, DML, schauen Sie hier, wie und schneller Hilfe bekommen zu fragen: https: //spaghettidba.com/2015/04/24/how-to-post-at-sql-question- on-a-public-forum/ – TheGameiswar

+0

Entschuldigung. Hier ist ein besserer Screenshot. @TheGameiswar –

+0

Bitte lesen Sie den Link Ich habe eingefügt, eine gute Frage zu stellen hat seine Vorteile, auch wenn es so einfach ist – TheGameiswar

Antwort

0

Sie müssen der Logik, die Sie ausführen möchten, mehr Details hinzufügen. Ich glaube, dass Sie versuchen, sich auf Kunden zu beziehen.

EDIT: Update-Anweisung hinzugefügt und mit CTE anstelle von Temp-Tabelle.

Create Table #Purchases (ID Int, CustomerID Int, PurchaseTypeID Int) 
Insert #Purchases Values (1987, 1, 209) 
Insert #Purchases Values (32875, 1, 2) 
Insert #Purchases Values (628900, 3, 220) 
Insert #Purchases Values (449000, 3, 30) 
Insert #Purchases Values (4560, 3, 209) 
Insert #Purchases Values (8008, 3, 2) 
Insert #Purchases Values (9856, 3, 5) 
Insert #Purchases Values (6000, 1, 5) 

Create Table #Transactions (TransactionID Int, PurchaseID Int, PurchaseIDForwardTo Int) 
Insert #Transactions Values (1, 1987, 32875) 
Insert #Transactions Values (2, 628900, 8008) 
Insert #Transactions Values (3, 449000, 8008) 
Insert #Transactions Values (4, 4560, 8008) 

Select * From #Purchases 
Select * From #Transactions 

;With ctePurchasesTransactions As 
(
Select * 
    From #Purchases P 
    Join #Transactions T On T.PurchaseID = P.ID 
) 
Update T Set T.PurchaseIDForwardTo = P.ID 
    From #Transactions T 
    Join ctePurchasesTransactions PT On PT.TransactionID = T.TransactionID 
    Join #Purchases P On P.CustomerID = PT.CustomerID And P.PurchaseTypeID = 5 

Select * From #Transactions 
+0

Ja, Sie haben Recht. Jede Transaktion hat eine Einkaufs-ID-Quelle und ein Kauf-ID-Ziel, die zu einer Kunden-ID gehören. An jedem Kauf ist purchaseTypeID angehängt. Wie aktualisiere ich die Transaction.PuurchaseIDforwatdedto? @joe C –

+0

Ich aktualisierte meine Antwort mit der Update-Anweisung. –