I disse tilfælde har jeg altid løst problemet ved at oprette en tabel som indeholder datoer fra f.eks. år 2000 til 2010 (dette kan du variere efter behov). Så du får en tabel som indeholder kolonnen ID og DATO (lad og kalde den tbl_dates).
Derefter antager jeg har du har en tabel (lad os kalde den tbl_periods), som vel nok indeholder kolonnerne: ID, AFREJSE_DATO og ANKOMST_DATO.
Her kommer så select'en:
select count(p.ID) from tbl_dates as d left join tbl_periods as p on d.DATO >= p.AFREJSE_DATO and d.DATO <= p.ANKOMST_DATO where d.DATO >= '2006-06-01' and d.DATO <= '2006-06-05'
Dette ser ut til å fungere, men jeg tror du har byttet om på AFREJSE_DATO og ANKOMST_DATO.
Slik fungerer det i hvertfall bedre for meg for å finne antall deltagere en spesiell dag:
select count(p.ID) from tbl_dates as d left join tbl_periods as p on d.DATO >= p.ANKOMST_DATO and d.DATO <= p.AFREJSE_DATO where d.DATO >= '2006-06-02' and d.DATO <= '2006-06-02'
Ahh ok. På dansk vil man nok sige "Således" eller "På denne måde" :-)
Hvordan populerede du din tbl_dates tabel? Jeg plejer selv at anvende Excel dato funktionerne til at generere disse og derefter gemme det som .csv og til sidst importere det i tabllen.
Jeg lagde kun en tabell for oktober 2006 siden det er det aktuelle tidsrommet. Så jeg gjorde jobben manuelt. Men skal man legge inn datoer for mange år ville jeg nok gjort som du. Laget datoene i ex. Excell og importert inn i tabellen. Men det er ikken en problemstilling jeg har tenkt så mye på...
Synes godt om
Ny brugerNybegynder
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.