Tengo una base de datos con números de cuenta
y números de tarjeta
. Los relaciono con un archivo para actualizar
cualquier número de tarjeta con el número de cuenta, de modo que sólo trabajo con números de cuenta.
He creado una vista que enlaza la tabla con la base de datos de cuentas/tarjetas para devolver el Identificador de la tabla
y el número de cuenta relacionado, y ahora necesito actualizar aquellos registros en los que el identificador coincide con el número de cuenta.
Esta es la tabla Sales_Import
, donde el campo account number
necesita ser actualizado:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
Y esta es la tabla RetrieveAccountNumber
, desde donde necesito actualizar:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
He probado lo siguiente, pero no ha habido suerte hasta ahora:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Actualiza los números de tarjeta a números de cuenta, pero los números de cuenta se sustituyen por NULL
.
Creo que una "actualización desde" con un "ingreso" ayudará:
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;
Parece que estás usando MSSQL, entonces, si no recuerdo mal, se hace así:
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
Gracias por las respuestas. Sin embargo, he encontrado una solución.
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)