Minulla on tietokanta, jossa on "tilinumeroita" ja "korttinumeroita". Sovitan nämä tiedostoon, jotta voin päivittää
kaikki korttinumerot tilinumeroon, joten työskentelen vain tilinumeroiden kanssa.
Olen luonut näkymän, joka yhdistää taulukon tili-/korttitietokantaan ja palauttaa Table ID
ja siihen liittyvän tilinumeron, ja nyt minun on päivitettävä ne tietueet, joissa ID vastaa tilinumeroa.
Tämä on Sales_Import
-taulukko, jossa account number
-kenttä on päivitettävä:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
Ja tämä on RetrieveAccountNumber
-taulukko, josta minun on päivitettävä:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Kokeilin alla olevia ohjeita, mutta toistaiseksi ei ole onnistunut:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Se päivittää korttinumerot tilinumeroiksi, mutta tilinumerot korvataan NULL
-merkillä.
Uskon, että UPDATE FROM
ja JOIN
auttavat:
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;
Näyttää siltä, että käytät MSSQL:ää, niin jos muistan oikein, se tehdään näin:
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
Kiitos vastauksista. Löysin ratkaisun.
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)