Mám databázi s čísly účtů
a čísly karet
. Přiřadím je k souboru, abych mohl všechna čísla karet aktualizovat
na čísla účtů, takže pracuji pouze s čísly účtů.
Vytvořil jsem pohled propojující tabulku s databází účtů/karty, který vrací ID tabulky
a související číslo účtu, a nyní potřebuji aktualizovat ty záznamy, u nichž se ID shoduje s číslem účtu.
Jedná se o tabulku Sales_Import
, kde je třeba aktualizovat pole číslo účtu
:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
A toto je tabulka RetrieveAccountNumber
, odkud potřebuji provést aktualizaci:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Zkoušel jsem níže uvedené, ale zatím bez úspěchu:
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 karet na čísla účtů, ale čísla účtů se nahradí NULL
.
Věří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á se, že používáte MSSQL, pak, pokud si dobře pamatuji, se to dělá takto:
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
Děkujeme za odpovědi. Našel jsem řešení.
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)