Update probleem

Status
Niet open voor verdere reacties.

Guilbert

Nieuwe gebruiker
Lid geworden
30 jul 2008
Berichten
1
Beste

In bijlage mijn probleem

ten eerste moet bij elke afdeling die gelijk is aan 4921 en de hoogste uren heeft binnen het nummer, de afdelingserie op '0' gezet worden.
Onderstaand statement lukte niet, ondanks dat de select wel de juiste records aangeeft.

update intensieve.tabel2
set afdelingserie=0
where afdeling=4921 and exists
(select nummer,max(uren) from intensieve.tabel2
where afdeling=4921
group by nummer)


Zoals je ziet in bijlage heb ik dit probleem reeds via een andere omweg verholpen.

Een tweede dringender probleem stelt zich als volgt.

Bij elke afdeling voorafgaand aan de afdeling met afdelingserie '0' moet de afdelingserie '-1' worden, deze daaraan voorafgaand '-2' en zo verder.
Bij elke afdeling volgend op de afdeling met afdelingserie '0' moet de afdelingserie '1' worden, deze daarop volgend '2' en zo verder.
Let wel, deze sequentiële nummering moet echter binnen het nummer blijven.

update intensieve.tabel4
set afdelingserie=-2
where id exists
(select (id-2) as idtemp
from intensieve.tabel4 where afdelingserie=0)


Bovenstaande statement overschreef ook de afdelingserie van voorgaande nummers

Dank aan diegene die zich over dit probleem wil buigen.

Guilbert
 

Bijlagen

Je kan het eens proberen met een subquery.

Update tabel set afdelingserie = (select afdelingserie - t1.afdelingserie from tabel t1 where t1.afdelingserie = 0)

Hoe je precies de outer tabel met de binnen tabel moest joinen ben ik even vergeten. Het is alweer een tijdje geleden dat ik actief SQL gebruikt.. En verschilt ook nog wel eens per dbms.

De truc is dat je met de 2 select statement moet rekenen zodat deze -2,-1,0,1,2 enz terug geeft.. Je moet er wel voor de zorgen dat de 2de select altijd maar 1 rij terug geeft. anders krijg je errors..

succes..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan