Avatar billede Lasse Novice
09. januar 2008 - 18:50 Der er 6 kommentarer og
1 løsning

Hjaelp til update saetning

Jeg har en tabel:

SuperId, Id, dato, active
1, 1, 10 jan, 0
1, 2, 20 jan, 0
1, 3, 30 jan, 0
2, 4, 10 jan, 0
2, 5, 8 jan, 0
2, 6, 6 jan, 0

Jeg vil gerne lave en update saetning der efter eksekvering efterlader tabellen saaledes:

SuperId, Id, dato, active
1, 1, 10 jan, 0
1, 2, 20 jan, 0
1, 3, 30 jan, 1
2, 4, 10 jan, 1
2, 5, 8 jan, 0
2, 6, 6 jan, 0

Dvs. at den nyeste raekke indenfor superid faar sat active = 1

Hvordan goeres dette?
Avatar billede terry Ekspert
09. januar 2008 - 20:48 #1
can you explain what "den nyeste raekke indenfor superid" is please?
Avatar billede arne_v Ekspert
09. januar 2008 - 21:11 #2
proev:

UPDATE tabel t1 SET active=1 WHERE dato=(SELECT MAX(dato) FROM tabel t2 WHERE t2.superid = t1.superid)
Avatar billede Lasse Novice
11. januar 2008 - 23:32 #3
terry>> Tag alle raekker med samme SuperId, find den nyeste, og saet active = 1 for den raekke.

arne_v>> den fejler ved indsaetning af "t1".
Avatar billede arne_v Ekspert
12. januar 2008 - 02:25 #4
Har du husket at definere t1 som tabel alias ?
Avatar billede arne_v Ekspert
12. januar 2008 - 05:42 #5
Jeg prøvede lige.

Det er faktisk der t1 giver syntax fejl.

Men prøv:

UPDATE tabel SET active=1 WHERE id IN (SELECT id FROM tabel t1 WHERE dato=(SELECT MAX(dato) FROM tabel t2 WHERE t2.superid = t1.superid))

det virker hos mig !
Avatar billede Lasse Novice
13. januar 2008 - 18:52 #6
Tak arne... svar => point
Avatar billede arne_v Ekspert
13. januar 2008 - 19:03 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester