Ho un database con numeri di conto
e numeri di carta
. Li abbino ad un file per aggiornare
qualsiasi numero di carta al numero di conto, in modo da lavorare solo con i numeri di conto.
Ho creato una vista che collega la tabella al database del conto/carta per restituire il Table ID
e il relativo numero di conto, e ora ho bisogno di aggiornare quei record in cui l'ID corrisponde al numero di conto.
Questa è la tabella Sales_Import
, dove il campo numero di conto
deve essere aggiornato:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
E questa è la tabella RetrieveAccountNumber
, da cui devo aggiornare:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Ho provato il seguente, ma finora nessuna fortuna:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Aggiorna i numeri di carta ai numeri di conto, ma i numeri di conto vengono sostituiti da NULL
.
Credo che un UPDATE FROM
con un JOIN
aiuterà:
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;
Sembra che tu stia usando MSSQL, quindi, se ricordo bene, si fa così:
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
Grazie per le risposte. Ho trovato una soluzione tho.
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)