Mám databázu s číslami účtov a číslami kariet. Priraďujem ich k súboru, aby sa všetky čísla kariet priradili k číslu účtu, takže pracujem len s číslami účtov.
Vytvoril som pohľad spájajúci tabuľku s databázou účtov/kariet, ktorý vracia ID tabuľky a príslušné číslo účtu, a teraz potrebujem aktualizovať tie záznamy, v ktorých sa ID zhoduje s číslom účtu.
Ide o tabuľku Sales_Import
, kde je potrebné aktualizovať pole číslo účtu
:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
A toto je tabuľka RetrieveAccountNumber
, odkiaľ potrebujem aktualizovať:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Skúsil som nižšie uvedený postup, ale zatiaľ bez úspechu:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Aktualizuje to čísla kariet na čísla účtov, ale čísla účtov sa nahradia číslom NULL
Verím, že pomôže UPDATE FROM
s 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;
Zdá sa, že používate MSSQL, potom, ak si dobre pamätám, sa to robí takto:
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
Ďakujeme za odpovede. Našiel som riešenie 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)