Έχω μια βάση δεδομένων με αριθμούς λογαριασμών
και αριθμούς καρτών
. Τους αντιστοιχίζω σε ένα αρχείο για να ενημερώσω
τυχόν αριθμούς καρτών με τον αριθμό λογαριασμού, έτσι ώστε να εργάζομαι μόνο με αριθμούς λογαριασμών.
Δημιούργησα μια προβολή που συνδέει τον πίνακα με τη βάση δεδομένων λογαριασμού/κάρτας για να επιστρέψει το ΑΔΑ του πίνακα
και τον σχετικό αριθμό λογαριασμού, και τώρα πρέπει να ενημερώσω τις εγγραφές όπου το αναγνωριστικό ταιριάζει με τον αριθμό λογαριασμού.
Πρόκειται για τον πίνακα Sales_Import
, όπου πρέπει να ενημερωθεί το πεδίο αριθμός λογαριασμού
:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
Και αυτός είναι ο πίνακας RetrieveAccountNumber
, από όπου πρέπει να ενημερώσω:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Δοκίμασα τα παρακάτω, αλλά δεν είχα καμία τύχη μέχρι στιγμής:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Ενημερώνει τους αριθμούς καρτών σε αριθμούς λογαριασμών, αλλά οι αριθμοί λογαριασμών αντικαθίστανται από NULL
.
Πιστεύω ότι θα βοηθήσει ένα UPDATE FROM
με ένα JOIN
:
UPDATE
Sales_Import
SET
Sales_Import.AccountNumber = RAN.AccountNumber
FROM
Sales_Import SI
INNER JOIN
RetrieveAccountNumber RAN
ON
SI.LeadID = RAN.LeadID;
UPDATE
Sales_Import SI,
RetrieveAccountNumber RAN
SET
SI.AccountNumber = RAN.AccountNumber
WHERE
SI.LeadID = RAN.LeadID;
Φαίνεται ότι χρησιμοποιείτε MSSQL, τότε, αν θυμάμαι καλά, γίνεται ως εξής:
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
Ευχαριστώ για τις απαντήσεις. Βρήκα μια λύση.
UPDATE Sales_Import
SET AccountNumber = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE Sales_Import.leadid =RetrieveAccountNumber.LeadID)
WHERE Sales_Import.leadid = (SELECT RetrieveAccountNumber.LeadID
FROM RetrieveAccountNumber
WHERE Sales_Import.leadid = RetrieveAccountNumber.LeadID)