Just nu i M3-nätverket
Gå till innehåll

uppdatera tabell från en annan tabell


JANspeed

Rekommendera Poster

Har en tabell som ser ut så här:

 

Postnummer|Postort|Mail|Distrikt

 

där kolumnen distrikt är tom. Har också en annan tabell som ser nästan likadan ut fast utan kolumnen "Mail" och där inte kolumnen Distrikt är tom. Nu försöker jag uppdatera den första tabellen med en UPDATE:

 

Update tblOrter
SET tblOrter.Distrikt = tblDistrikt.Distrikt
FROM tblDistrikt
WHERE tblOrter.Postort = tblDistrikt.Postort

 

men jag får det inte att fungera hur jag än gör? Någon som vet hur man gör?

 

/JANspeed

 

 

 

[inlägget ändrat 2003-03-27 15:40:26 av JANspeed]

Länk till kommentar
Dela på andra webbplatser

Jag *tror* att det borde bli så här:

Update tblOrter, tblDistrikt
SET tblOrter.Distrikt = tblDistrikt.Distrikt
WHERE tblOrter.Postort = tblDistrikt.Postort

 

 

_________

TicoRoman - The One And Only

 

Länk till kommentar
Dela på andra webbplatser

Jag *tror* att det borde bli så här:

 

Nja, då får man felmeddelande. :/

 

/JANspeed

 

Länk till kommentar
Dela på andra webbplatser

Testa följande kod:

 

UPDATE tblOrter INNER JOIN tblDistrikt ON tblDistrikt.Postort=tblOrter.Postort SET tblOrter.Distrikt = tblDistrik.Distrikt;

 

 

Länk till kommentar
Dela på andra webbplatser

Då får jag också felmeddelande. Den klagar på felaktig syntax. Knepigt det här. :(

 

/JANspeed

 

Länk till kommentar
Dela på andra webbplatser

Ah... sorry det har jag ju inte skrivit. Klantigt av mig.

 

Jag kör MS SQL Server 2000 och kör queryn i Enterprise manager.

 

Får felmeddelandet:

 

Incorrect syntax near the keyword 'INNER'.

 

 

/JANspeed

 

Länk till kommentar
Dela på andra webbplatser

Prova detta:

 

UPDATE tblOrter

SET tblOrter.Distrikt = tblDistrik.Distrikt

FROM tblDistrikt t

INNER JOIN tblDistrikt

ON t.Postort=tblOrter.Postort

 

 

 

Länk till kommentar
Dela på andra webbplatser

Hoppsan en liten felstavning i tabellnamnet. Här kommer det rätta:

 

UPDATE tblOrter

SET tblOrter.Distrikt = tblDistrikt.Distrikt

FROM tblDistrikt t

INNER JOIN tblDistrikt

ON t.Postort=tblOrter.Postort

 

 

 

Länk till kommentar
Dela på andra webbplatser

Hmm... det visste jag inte att man kunde göra! Ska prova det på måndag. :)

 

/JANspeed

 

Länk till kommentar
Dela på andra webbplatser

UPDATE tblOrter

SET tblOrter.Distrikt = tblDistrikt.Distrikt

FROM tblDistrikt t

INNER JOIN tblDistrikt

ON t.Postort=tblOrter.Postort

 

Tyvärr funkar inte heller. Får följande felmedelande:

 

The column prefix 'tblOrter'' does not match with a table name or alias name used in the query.

 

Såg ju lovande ut dock. :(

 

/JANspeed

 

Länk till kommentar
Dela på andra webbplatser

Det var då en envis rackare. :-) Ja men lägg till tblOrter i From då. Kanske det går?

 

UPDATE tblOrter

SET tblOrter.Distrikt = tblDistrikt.Distrikt

FROM tblDistrikt t, tblOrter

INNER JOIN tblDistrikt

ON t.Postort=tblOrter.Postort

 

 

 

Länk till kommentar
Dela på andra webbplatser

Nä, jag får samma felmeddelande fast nu på tabellen 't' istället. :/

 

Kanske man ska använda insert istället?

 

/JANspeed

 

Länk till kommentar
Dela på andra webbplatser

Hmmm... Och inte går väl det här bättre :-(

 

UPDATE tblOrter

SET tblOrter.Distrikt = tblDistrikt.Distrikt

FROM tblDistrikt t, tblOrter o

INNER JOIN tblDistrikt

ON t.Postort=o.Postort

 

Syntaxen godkänns i alla fall i MS-SQL Query Analyzer.

 

 

Länk till kommentar
Dela på andra webbplatser

Hmm... är det kanske därför det inte funkar? För att jag sitter och tutar i Enterprise Manager? Ska prova.

 

/JANspeed

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...