Imam zbirko podatkov s številkami računov in številkami kartic. Te številke ujemam z datoteko, da bi vse številke kartic nadgradil
s številko računa, tako da delam samo s številkami računov.
Ustvaril sem pogled, ki povezuje tabelo s podatkovno bazo računov/kartic in vrača ID tabele in ustrezno številko računa, zdaj pa moram posodobiti tiste zapise, pri katerih se ID ujema s številko računa.
To je tabela Sales_Import
, kjer je treba posodobiti polje številka računa
:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
In to je tabela RetrieveAccountNumber
, iz katere moram posodobiti polje:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Poskusil sem s spodnjimi navodili, vendar zaenkrat brez uspeha:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Številke kartic se posodobijo v številke računov, vendar se številke računov nadomestijo z NULL
Verjamem, da bo pomagala možnost UPDATE FROM
z 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;
Zdi se, da uporabljate MSSQL, potem, če se prav spomnim, se to naredi tako:
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
Hvala za odgovore. Našel sem rešitev 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)