Ik heb een database met rekeningnummers
en kaartnummers
. Ik match deze met een bestand om eventuele kaartnummers bij te werken
aan het rekeningnummer, zodat ik alleen met rekeningnummers werk.
Ik heb een view gemaakt die de tabel linkt aan de account/card database om de Tabel ID
en het bijbehorende rekeningnummer terug te geven, en nu moet ik die records updaten waar de ID overeenkomt met het rekeningnummer.
Dit is de Sales_Import
tabel, waar het accountnummer
veld moet worden bijgewerkt:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
En dit is de RetrieveAccountNumber
tabel, waar ik de update vandaan moet halen:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Ik heb het onderstaande geprobeerd, maar tot nu toe geen geluk:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Het update de kaart nummers naar rekeningnummers, maar de rekeningnummers worden vervangen door NULL
Ik denk dat een UPDATE FROM
met een JOIN
zal helpen:
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;
Het lijkt erop dat je MSSQL gebruikt, dan, als ik het me goed herinner, gaat het als volgt:
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
Bedankt voor de reacties. Ik vond een oplossing 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)