Query herschrijven naar update query

  • Onderwerp starter Onderwerp starter TbR
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

TbR

Nieuwe gebruiker
Lid geworden
12 okt 2011
Berichten
4
Beste Lezer,

Ik loop al een tijdje te stoeien om een query te herschrijven naar een update query. Een tijd terug heb ik een vraag gesteld over het schrijven van deze query.
Code:
http://www.helpmij.nl/forum/showthread.php/660841-Datum-uit-volgend-record-gebruiken?highlight=

Deze query werkt perfect als ik hem gewoon als SELECT gebruik. Nu probeer ik hem echter zo te maken zodat deze query als een update wordt uitgevoerd zodat ik de query maar een keer hoef uit te voeren en niet steeds apart hoef uit te voeren (ivm met de snelheid).

De volgende query probeer ik momenteel, hier krijg ik echter de foutmelding "De bewerking moet worden uitgevoerd op een query die kan worden bijgewerkt":
Code:
UPDATE overzicht SET overzicht.eind_new = (SELECT TOP 1 dupe.start
FROM overzicht AS dupe
WHERE dupe.id = overzicht.id 
AND dupe.start > overzicht.start
OR (dupe.id = overzicht.id AND dupe.start = overzicht.start AND Nz(dupe.gid) > Nz(overzicht.gid)));

Ik denk dat de fout zit in het "set = overzicht.eind_new (SELECT TOP 1" gedeelte.

Heeft een van jullie enig idee?
 
Dit soort queries gaat niet lukken; je zult ofwel een procedure moeten maken die de velden bijwerkt, ofwel de query die de datum berekent een Tabelmaakquery moeten maken, en de tabel gebruiken in de Bijwerkquery. In dat geval heb je dus nog steeds twee queries nodig: een query die de tijdelijke tabel maakt, en de bijwerkquery.
 
Beste Michel,

Bedankt voor je antwoord. Dit is inderdaad een mooie optie.

Ik heb de query nu lopen zodat er een nieuwe tabel aangemaakt wordt. De TOP 1 subquery heb ik daar gewoon als extra veld in toegevoegd.

De tabel waarop deze query wordt uitgevoerd is echter erg groot (300.000+ regels). De query is dan nu ook al 2,5 uur bezig. Is er een slimme manier om dit sneller te doen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan