Avatar billede gjengis Nybegynder
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?
Avatar billede the_party_dog Nybegynder
22. juni 2005 - 13:50 #1
Skal det være nyere end en bestemt dato?
Avatar billede the_party_dog Nybegynder
22. juni 2005 - 13:51 #2
SELECT * FROM TabelNavn WHERE Oprettet > '2005-06-22 00:00:00'

Vil med dine eksempler, returnere de 2 ønskede linjer.
Avatar billede arne_v Ekspert
22. juni 2005 - 13:52 #3
SELECT TOP 2 FROM tabelnavn ORDER BY oprettet DESC

måske
Avatar billede gjengis Nybegynder
22. juni 2005 - 13:59 #4
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.
Avatar billede gjengis Nybegynder
22. juni 2005 - 14:01 #5
Resultatet skal være den seneste i forhold til hvis der eksistere en tuble med samme LokalNr.
Avatar billede gjengis Nybegynder
22. juni 2005 - 14:07 #6
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.
Avatar billede arne_v Ekspert
22. juni 2005 - 14:09 #7
hvad identificerer "senest" ?
Avatar billede gjengis Nybegynder
22. juni 2005 - 14:19 #8
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.
Avatar billede gjengis Nybegynder
22. juni 2005 - 14:21 #9
Det er tilfældigt hvor ofte et lokalnummer er blevet ændret.
Avatar billede gjengis Nybegynder
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.
Avatar billede arne_v Ekspert
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)
Avatar billede gjengis Nybegynder
22. juni 2005 - 15:00 #12
Det virkede... Tak :-)
Send et svar så får du lige points!
Avatar billede arne_v Ekspert
22. juni 2005 - 15:01 #13
ok
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