wie o wie heeft hier een oplossing voor?
Het een applicatie met daarin ondere een tabel met vertrektijden.
Er moet een weergave komen die het volgende doet, namelijk sorteren op datum en vertrektijd.
Het lastige is echter dat de tijden tussen 24:00 en 05:00 achteraan de lijst moeten staan omdat dan de dienstregeling stopt voor de bewuste dag.
We hebben nu deze query:
Het vervelende van de UNION die hier gebruikt wordt is het volgende.
In de subqueries staat de volgorde precies goed. Je krijgt een lijst met vertrektijden gesorteerd op tijd.
Hij begint dus om 05:00 en loopt de 24:00 voor de eerste query.
De 2e pakt dan 00:00 tot 05:00
Maar de union zorgt ervoor dat heel de sortering weer weg is.
Het probleem is ook nog zo dat als je de query aan het eind zou uitbreiden met ORDER BY t.datum,t.begintijd dat je een grote lijst krijgt die begin om 00:00 en eindigt op 24:00
Dit mag echter niet omdat nu bovenaan de vertrektijden staan van trips die later op de dag voorkomen(in de nacht, dus eigenlijk al de volgende dag en datum , maar zo werkt deze dienstregeling helaas niet)
Het een applicatie met daarin ondere een tabel met vertrektijden.
Er moet een weergave komen die het volgende doet, namelijk sorteren op datum en vertrektijd.
Het lastige is echter dat de tijden tussen 24:00 en 05:00 achteraan de lijst moeten staan omdat dan de dienstregeling stopt voor de bewuste dag.
We hebben nu deze query:
code:
1
| (SELECT t.db_id,t.vertrektijd FROM tijden AS t WHERE (t.datum >= DATE_ADD(NOW(), INTERVAL 0 DAY)) AND (t.datum <= DATE_ADD(NOW(), INTERVAL 0 DAY)) AND (t.doelgroep = '65plus') AND begintijd > 050000 ORDER BY t.datum, t.begintijd) UNION (SELECT t.db_id,t.vertrektijd FROM tijden AS t WHERE (t.datum >= DATE_ADD(NOW(), INTERVAL 0 DAY)) AND (t.datum <= DATE_ADD(NOW(), INTERVAL 0 DAY)) AND (t.doelgroep = '65plus') AND begintijd <= 050000 ORDER BY t.datum, t.begintijd) |
Het vervelende van de UNION die hier gebruikt wordt is het volgende.
In de subqueries staat de volgorde precies goed. Je krijgt een lijst met vertrektijden gesorteerd op tijd.
Hij begint dus om 05:00 en loopt de 24:00 voor de eerste query.
De 2e pakt dan 00:00 tot 05:00
Maar de union zorgt ervoor dat heel de sortering weer weg is.
Het probleem is ook nog zo dat als je de query aan het eind zou uitbreiden met ORDER BY t.datum,t.begintijd dat je een grote lijst krijgt die begin om 00:00 en eindigt op 24:00
Dit mag echter niet omdat nu bovenaan de vertrektijden staan van trips die later op de dag voorkomen(in de nacht, dus eigenlijk al de volgende dag en datum , maar zo werkt deze dienstregeling helaas niet)
[ Voor 5% gewijzigd door hennink op 14-03-2005 11:05 ]
alles wat aan kan, gaat kapot. De vraag is alleen wanneer.