Avatar billede Lasse Novice
22. juni 2007 - 19:17 Der er 2 kommentarer og
1 løsning

UPDATE af data fra samme tabel

Jeg har en tabel, hvori der er foelgende data:

Id, PId, PPid, Path, Code, Date
1, 2, 2, c:\test4.png, c1, 2007-5-8
2, 3, 2, c:\test2.png, c1, 2007-6-8
3, 4, 2, NULL        , c1, NULL
4, 8, 2, c:\test3.png, c2, 2007-12-8
5, 5, 2, c:\test.png , c2, 2007-10-8
6, 7, 2, NULL        , c2, NULL
7, 6, 2, c:\test2.png, c2, 2007-11-8

Jeg vil nu gerne have lavet en "UPDATE... FROM..." saetning (eller en anden loesning), der opdaterer path og date i de raekker hvor Path IS NULL (dvs. Id IN (3, 6)). Path skal tages fra den raekke der har samme PPId, samme Code, hvor Path IS NOT NULL og det skal vaere den sidst nye Date.

Dvs. efter "UPDATE... FROM..." skal tabellen, se saadanne ud:

1, 2, 2, c:\test4.png, c1, 2007-5-8
2, 3, 2, c:\test2.png, c1, 2007-6-8
3, 4, 2, c:\test2.png, c1, getdate()
4, 8, 2, c:\test3.png, c2, 2007-12-8
5, 5, 2, c:\test.png , c2, 2007-10-8
6, 7, 2, c:\test3.png, c2, getdate()
7, 6, 2, c:\test2.png, c2, 2007-11-8

Hvordan goer jeg dette i T-SQL?
Avatar billede arne_v Ekspert
23. juni 2007 - 19:43 #1
prøv noget a la:

UPDATE tabel t1
SET path = (SELECT TOP 1 path FROM tabel t2 WHERE t2.ppid=t1.ppid AND t2.path IS NOT NULL ORDER BY date DESC)
WHERE path IS NULL
Avatar billede Lasse Novice
26. juni 2007 - 23:41 #2
arne_v>> dutter ikke. Kan ikke proppe t1 efter tabel.
Avatar billede Lasse Novice
05. marts 2008 - 17:19 #3
lukker spg.
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