Avatar billede neshamar1975 Nybegynder
29. september 2008 - 14:47 Der er 6 kommentarer og
1 løsning

Hjælp til udtræk

Jeg har følgende kolonner i tabellen.

RowID, int
RouteNr, int
Destination, nvarchar
AdditionalDestinationInfo, nvarchar
DepartureTime, datetime
NewDepartureTime, datetime
LaneNr, nvarchar

De vigtigste i mit spørgsmål er RouteNr, Destination og DepartureTime.

jeg skal lave et udtræk som sorter efter RouteNr - det er nemt nok, MEN hvis jeg kun gør det får jeg et udtræk der ligner dette:

RouteNr          Destination          DepartureTime
1                Esbjerg              12:00
1                Ribe                12:00
1                Esbjerg              13:00
1                Ribe                13:00
1                Esbjerg              14:00
1                Ribe                14:00
2                Varde                08:00
2                Oksbøl              08:00
2                Varde                09:00
2                Oksbøl              09:00
2                Varde                10:00
2                Oksbøl              10:00
o.s.v.

Hvor jeg vil have at det skal se sådan ud i stedet, skal stadig sorteres efter RouteNr men skal kun vise een enkelt afgang til hver by, og så igen sortere efter RouteNr:

RouteNr          Destination          DepartureTime
1                Esbjerg              12:00
1                Ribe                12:00
2                Varde                08:00
2                Oksbøl              08:00
1                Esbjerg              13:00
1                Ribe                13:00
2                Varde                09:00
2                Oksbøl              09:00
1                Esbjerg              14:00
1                Ribe                14:00
2                Varde                10:00
2                Oksbøl              10:00

Hvordan gør jeg det?
Avatar billede aaberg Nybegynder
29. september 2008 - 15:00 #1
noget lignende dette?

select RouteNr, Destination, min(DepartureTime) DepartureTime
from tabel
group by RouteNr, Destination
order by RouteNr
Avatar billede neshamar1975 Nybegynder
29. september 2008 - 15:18 #2
select RouteNr, Destination, min(DepartureTime) DepartureTime
from tabel
group by RouteNr, Destination
order by RouteNr

giver:
RouteNr          Destination          DepartureTime
1                Esbjerg              12:00
1                Ribe                12:00
2                Varde                08:00
2                Oksbøl              08:00

Og ikke mere.

Har brug for:

RouteNr          Destination          DepartureTime
1                Esbjerg              12:00
1                Ribe                12:00
2                Varde                08:00
2                Oksbøl              08:00
1                Esbjerg              13:00
1                Ribe                13:00
2                Varde                09:00
2                Oksbøl              09:00
1                Esbjerg              14:00
1                Ribe                14:00
2                Varde                10:00
2                Oksbøl              10:00
Avatar billede aaberg Nybegynder
29. september 2008 - 22:37 #3
Kan du forklare lidt bedre hvad det er du prøver at opnå. Jeg forstår det ikke helt. Hvodan vil du helt præcis have at den skal sortere? Efter hvilke kriterier?
Avatar billede neshamar1975 Nybegynder
30. september 2008 - 09:24 #4
Det skal sorteres efter RouteNr men så alligevel ikke hehe, har lidt svært ved at forklare det, f. eks. sorterer efter RouteNr, men der kommer alle f. eks. rute 1 til en destination, og så alle rute 2 til en destination osv.. Skal kun have første rute 1 til destination efter tid, så skal jeg have første rute 2 til destination efter tid, og så første rute 3 til destination efter tid osv. Når jeg så har alle første destinationer efter tid, skal der komme alle næste destinationer efter tid igen, altså igen starte med rute 1 med næste destination efter tid osv.
Avatar billede aaberg Nybegynder
30. september 2008 - 10:14 #5
Hvad med:
select RouteNr, Destination, DepartureTime
from tabel
order by DepartureTime, RouteNr

??

Det vil dog ikke give helt samme rækkefølge som det du angiver. Problemet er at din DepartureTime ikke kommer i nogen logisk rækkefølge. I SQL kan man sortere efter kolonner. Man kan ikke putte "if" sætninger ind i ORDER BY delen.

Hvis dataene skal bruges fra en applikasjon, ville jeg nok have programmeret denne sortering der.

Ellers må du have en ekstra kolonne i tabellen, som du kan sortere efter. En slags "index" kolonne.
Avatar billede neshamar1975 Nybegynder
30. september 2008 - 10:30 #6
Ok tak for hjælpen, send et svar så du kan få poeng
Avatar billede aaberg Nybegynder
30. september 2008 - 10:38 #7
:-)
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