MySQL inline view med statiske data
  Home FAQ Contact Sign in
dk.edb.database only
 
Advanced search
POPULAR GROUPS

more...

 Up
MySQL inline view med statiske data         

Group: dk.edb.database · Group Profile
Author: Morten
Date: Apr 21, 2008 05:04

Hej, jeg har en applikation hvor brugeren vælger en dato range, fex.
2008-04-01 til 2008-04-03. Denne benyttes til at tælle antal events
der var "åbne" på den givne dato, altså for hver dato some_date findes
events hvor "some_date BETWEEN events.start_date AND events.end_date"

Udfordringen er, at få datoerne sendt til MySQL, her er en måde:

SELECT date_range.some_day, COUNT(*)
FROM events, (
SELECT DATE('2008-04-01') AS some_day FROM DUAL UNION ALL
SELECT DATE('2008-04-02') FROM DUAL UNION ALL
SELECT DATE('2008-04-03') FROM DUAL
) AS date_range
WHERE date_range.some_day BETWEEN events.start_date AND
events.end_date
GROUP BY 1

Er det den mest elegante måde? Altså, hvis der er 200 dage i den
initielle date range, så er det en pæn del UNION ALL's der skal til...
Nogen smartere måde? Jeg overvejer om jeg skal lave en stored
procedure som returnerer dagene givet start + slut, men vil helst
holde det i ren SQL om muligt...

Mvh.

Morten
6 Comments
diggit! del.icio.us! reddit!