22. juni 2005 - 13:47
Der er
12 kommentarer og 1 løsning
Hjælp til et SQL udtræk.
Hej. Jeg har en tabel i MS-SQL hvor jeg kun skal bruge de seneste rækker. f.eks. jeg har følgende rækker: 1; 11,2,15; 7135; 01-01-1900 00:01:14 1; 21,9,9; 7135; 22-06-2005 11:15:00 1; 11,2,13; 7136; 01-01-1900 00:01:14 1; 11,2,15; 7136; 22-06-2005 13:00:00 i tabellen: Navn Type Længde Tillad NULL PabcNr int 4 0 HwPosition varchar 15 0 LokalNr int 4 0 Oprettet datetime 8 0 og mit problem er at jeg skal have lavet et udtræk der kun trækker følgende rækker ud uden at skulle definere hver eneste række selv: 1; 21,9,9; 7135; 22-06-2005 11:15:00 1; 11,2,15; 7136; 22-06-2005 13:00:00 Er der nogen der kan hjælpe mig?
Annonceindlæg fra Hitachi
”Forskellighed gør os stærkere!”
Diversitet er ikke kun buzzwords og politisk korrekthed, men et spørgsmål om at alle føler sig godt tilpas og kan yde deres bedste.
31. januar 2025
Skal det være nyere end en bestemt dato?
SELECT * FROM TabelNavn WHERE Oprettet > '2005-06-22 00:00:00' Vil med dine eksempler, returnere de 2 ønskede linjer.
SELECT TOP 2 FROM tabelnavn ORDER BY oprettet DESC måske
Jeg har omkring 1700 tubler ialt. Problemet er at datoerne ikke er pålidelige, dvs. at den seneste række kan indeholde tiden 01-01-1900 00:01:14 fordi den ikke er blevet ændret siden. Men kan også være dagsdato hvis den er ændret i dag.
Resultatet skal være den seneste i forhold til hvis der eksistere en tuble med samme LokalNr.
Jeg skal bruge alle de seneste forekomster fra hele tabellen. jeg kan ikke uden at tælle dem op finde ud af hvor mange Lokalnumre der er repræsenteret flere gange.
hvad identificerer "senest" ?
Hvis jeg har følgende tubler: * 1 11,2,15 7135 01-01-1900 00:01:14 * 1 21,9,9 7135 22-06-2005 11:15:00 1 11,2,15 7136 22-06-2005 13:00:00 1 11,2,13 7136 01-01-1900 00:01:14 1 11,5,12 7138 01-01-1900 00:01:14 1 11,5,13 7139 01-01-1900 00:01:14 Skal følgende trækkes ud: 1 21,9,9 7135 22-06-2005 11:15:00 1 11,2,15 7136 22-06-2005 13:00:00 1 11,5,12 7138 01-01-1900 00:01:14 1 11,5,13 7139 01-01-1900 00:01:14 Forskellen mellem de 2 tubler med stjnerne, er at 7135 er blevet ændret på tidspunktet 22-06-2005 11:15:00 og derfor er den første tuble ikke relevant i netop dette udtræk og skal sorteres fra.
Det er tilfældigt hvor ofte et lokalnummer er blevet ændret.
22. juni 2005 - 14:23
#10
Det kunne også se sådan ud: Hvis jeg har følgende tubler: 1 11,2,15 7135 01-01-1900 00:01:14 * 1 21,9,9 7135 22-06-2005 11:15:00 * 1 11,2,15 7136 22-06-2005 13:00:00 1 11,2,14 7136 20-06-2005 10:00:00 1 13,7,1 7136 17-06-2005 08:00:00 1 11,2,13 7136 01-01-1900 00:01:14 * 1 11,5,12 7138 01-01-1900 00:01:14 * 1 11,5,13 7139 01-01-1900 00:01:14 Vil det kun være tublerne med stjerne der skal trækkes ud.
22. juni 2005 - 14:35
#11
prøv: SELECT * FROM tabelnavn t1 WHERE t1.oprettet = (SELECT MAX(t2.oprettet) FROM tabelnavn t2 WHERE t2.lokalnr=t1.lokalnr)
22. juni 2005 - 15:00
#12
Det virkede... Tak :-) Send et svar så får du lige points!
22. juni 2005 - 15:01
#13
ok
Computerworld tilbyder specialiserede kurser i database-management