Man ir datu bāze ar kontu numuriem
un karšu numuriem
. Es tos pielīdzinu datnei, lai atjauninātu
jebkuru kartes numuru konta numuram, tādējādi es strādāju tikai ar konta numuriem.
Es izveidoju skatījumu, kas sasaista tabulu ar kontu/karšu datubāzi, lai atgrieztu Tabulas ID
un saistīto konta numuru, un tagad man jāatjaunina tie ieraksti, kuros ID sakrīt ar konta numuru.
Tā ir Sales_Import
tabula, kurā jāatjaunina konta numura
lauks:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
Un šī ir RetrieveAccountNumber
tabula, no kuras man ir jāatjaunina:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Es izmēģināju tālāk minēto, bet pagaidām nekas neizdodas:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Tas atjaunina kartes numurus uz konta numuriem, bet konta numuri tiek aizstāti ar NULL
.
Es uzskatu, ka UPDATE FROM
ar JOIN
palīdzēs:
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;
Šķiet, ka jūs izmantojat MSSQL, tad, ja es pareizi atceros, tas tiek darīts šādi:
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
Paldies par atbildēm. Es atradu risinājumu 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)