Jeg har en database med kontonumre
og kortnumre
. Jeg matcher disse til en fil for å oppdatere
eventuelle kortnumre til kontonummeret, slik at jeg bare arbeider med kontonumre.
Jeg opprettet en visning som kobler tabellen til konto-/kortdatabasen for å returnere Table ID
og det tilhørende kontonummeret, og nå må jeg oppdatere de postene der IDen samsvarer med kontonummeret.
Dette er tabellen Sales_Import
, der feltet kontonummer
må oppdateres:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
Og dette er tabellen RetrieveAccountNumber
, hvor jeg må oppdatere fra:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Jeg prøvde nedenfor, men ikke noe hell så langt:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Den oppdaterer kortnumrene til kontonumre, men kontonumrene blir erstattet av NULL
.
Jeg tror en UPDATE FROM
med en JOIN
vil hjelpe:
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;
Ser ut til at du bruker MSSQL, så hvis jeg husker riktig, gjøres det slik:
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
Takk for svarene. Jeg fant en løsning da.
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)