Update veld in zelfde tabel

Status
Niet open voor verdere reacties.

fmorssink

Nieuwe gebruiker
Lid geworden
17 jun 2011
Berichten
4
Hallo,

Ik zoek een query om een veld in 1 tabel te updaten met een veld uit dezelfde tabel.
Ik kom wel een eind, maar ik moet de gegevens uit een rij krijgen met een zelfde ID:
UPDATE Tabel
SET FreeTextField_01 =
(SELECT FreeTextField_02 FROM Tabel
WHERE Type = 8907)
WHERE Type = 8911

Beide rijen hebben 1 ding gemeen, een bepaalde entryguid.
Ik wil dus FreeTextField_01 vullen met FreeTextField_02 uit dezelfde tabel, echter moet de entryguid gelijk zijn.

Krijg volgende foutmelding:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.

Moet ik dan een join gebruiken op de entryguid? En zo ja hoe?
Of helemaal anders??

Hoop dat jullie me kunnen helpen...
 
Het klinkt alsof er meerdere velden zijn met Type = 8907 waardoor de parser niet weet welk resultaat hij moet gebruiken van de reeks die hij terugkrijgt.
 
Klopt. Er zijn wel paar duizend rijen met het Type = 8907
Type van het vrijtekstveld wat ik wil updaten is 8911 met vrijtekstveld uit de rijen met Type = 8907.
Elke Row is gelinkt met de entryguid.
 
De koppeling op entryguid wordt niet gemaakt, dus die gaat hier niet op. Je probeert nu al die duizenden rijen met type = 8907 tegelijk te gebruiken als nieuwe value.

Je kunt proberen om de entryguid koppeling nog te maken in de query maar ik weet niet of dat toegestaan is gezien je dan best makkelijk allemaal vreemde situaties kunt krijgen. Volgensmij wordt dat ook door SQL niet toegestaan.
 
Denk dat dit wel mag, maar lukt me gewoon niet :-)
Ik moet iets hebben zoals:
UPDATE Tabel a1
SET a1.FreeTextField_01 =
(SELECT a2.FreeTextField_02 FROM Tabel a2
WHERE a2.Type = 8907)
WHERE a1.Type = 8911
AND a1.Entryguid=a2.Entryguid
 
Dat inderdaad, alleen moet de AND binnen de haakjes, want dat is een conditie van de subquery.
 
Volgens mij niet. De tweede AND is een conditie van de UPDATE.
Ik wil dus FreeTextField_01 updaten met FreetextField_02 uit een andere rij. De link tussen deze rijen is de entryguid.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan