webForumDet fria alternativet

update sats

8 svar · 179 visningar · startad av hakan@4u2.se

hakan@4u2.seMedlem sedan aug. 2000334 inlägg
#1

Har en [temp_lista] tabell , nu vill jag uppdatera namnen i [temp_lista] tabellen från tabellen [deltagare].

Eller går det inte att göra som jag har tänkt? Är ni med?

Här är mitt kod tänk men det fungerar inte!

UPDATE temp_lista
SET  namn =
                   (SELECT DISTINCT deltagare.namn
                    FROM   deltagare INNER JOIN
                                   temp_lista ON deltagare.deltagare_id = temp_lista.deltagare_id) AS namn
Engine^Medlem sedan dec. 20002 861 inlägg
#2

Använd DISTINCTROW när du jobbar med JOINs

hakan@4u2.seMedlem sedan aug. 2000334 inlägg
#3

Hmmm..Finns det kommandot i SQL server 2000?

Blir bara fel när jag använder det!

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Distinctrow är ett påfund i Access.

UPDATE temp_lista 
SET  namn =
         (SELECT DISTINCT deltagare.namn
             FROM deltagare 
       where deltagare_id = temp_lista.deltagare_id)
Engine^Medlem sedan dec. 20002 861 inlägg
#5
UPDATE temp_lista
SET  namn = deltagare.namn
FROM deltagare
WHERE deltagare.deltagare_id = temp_lista.deltagare_id

Blir detta samma resultat?

Jag måste lägga av att jobba med Access ;)

LarsGMedlem sedan dec. 200012 465 inlägg
#6

Tja, det beror på vad som händer om det finns flera poster med samma id.

Din syntax är lika lite standard som distinctrow.

Engine^Medlem sedan dec. 20002 861 inlägg
#7

Hehe... jag var inne på MSDN och kollade lite på UPDATE och försökte lista ut saker :)

LarsGMedlem sedan dec. 200012 465 inlägg
#8

Du behöver ha med temp_lista i from om det skall fungera.

UPDATE temp_lista
SET  namn = deltagare.namn
FROM deltagare,temp_lista
WHERE deltagare.deltagare_id = temp_lista.deltagare_id

Om man har from så är namnet i update bara ett korrelationsnamn så det går att skriva

UPDATE t
SET  namn = d.namn
FROM deltagare as d,temp_lista as t
WHERE d.deltagare_id = t.deltagare_id

Vilket på sätt och vis känns mer logiskt.

Engine^Medlem sedan dec. 20002 861 inlägg
#9

Jo, jag tyckte att det borde ha blivit något sådant, men jag känner mig förvirrad just nu och fick inte helt grepp på vart det inte fick vara något Alias.

Skönt att det finns personer som kan reda ut saker åt andra personer :)

Genererad på 367 ms · cache AV · v20260730165559-full.f96bc7eb