Update: Inmiddels al wat stappen verder. Scroll naar beneden voor de laatste updates / vragen
Situatieschets
In een planapplicatie die ik heb ontwikkeld kunnen gebruikers mensen koppelen aan groepen op bepaalde dagdelen op week basis (dus bijv. starten op dinsdag 17-7-2012 en herhaal iedere 2 weken).
Een dagdeel is in de ochtend, middag of beide (hele dag)
Een groep heeft een bepaalde max capaciteit
Een bezetting heeft een begin en einddatum, waarbij de weekdag van de begindatum bepaald om welke weekdag het gaat.
Nu wil ik een query schrijven waarbij een gebruiker de eerste vrije plek kan zoeken. Ik krijg het niet voor elkaar om dit met een eenvoudige query of zelfs een predef stored proc. op te lossen.
Technische gegevens:
Ik wil nu dus een query schrijven die gaat kijken of er vrije plekken zijn in een specifieke groep, of de eerste beschikbare groep tussen een start en einddatum.
Bijvoorbeeld tussen dinsdag 17-7-2012 en dinsdag 15-7-2014, herhaal iedere 2 weken (dus alle 'even' weken tussen die 2 data).
Is er een manier om dit slim te query'en? Zat zelf al te denken aan een stored func die per gegeven datum en wel / niet ochtend of middag per groep aangeeft hoeveel plek er is, maar dat zou betekenen dat ik die query moet uitvoeren voor iedere datum in die range. In dit geval...~50 weken (iedere even week over periode van 2 jaar). Dat lijkt mij een erg dure operatie....
Situatieschets
In een planapplicatie die ik heb ontwikkeld kunnen gebruikers mensen koppelen aan groepen op bepaalde dagdelen op week basis (dus bijv. starten op dinsdag 17-7-2012 en herhaal iedere 2 weken).
Een dagdeel is in de ochtend, middag of beide (hele dag)
Een groep heeft een bepaalde max capaciteit
Een bezetting heeft een begin en einddatum, waarbij de weekdag van de begindatum bepaald om welke weekdag het gaat.
Nu wil ik een query schrijven waarbij een gebruiker de eerste vrije plek kan zoeken. Ik krijg het niet voor elkaar om dit met een eenvoudige query of zelfs een predef stored proc. op te lossen.
Technische gegevens:
code:
1
2
3
| Dagdeel ----------------- Code | IsOchtend | IsMiddag |
code:
1
2
3
| Groep ----------------- Naam | Capaciteit |
code:
1
2
3
| Bezetting ----------------------------------------- DagdeelID | GroepID | UserID | StartDatum | EindDatum | Herhaal |
Ik wil nu dus een query schrijven die gaat kijken of er vrije plekken zijn in een specifieke groep, of de eerste beschikbare groep tussen een start en einddatum.
Bijvoorbeeld tussen dinsdag 17-7-2012 en dinsdag 15-7-2014, herhaal iedere 2 weken (dus alle 'even' weken tussen die 2 data).
Is er een manier om dit slim te query'en? Zat zelf al te denken aan een stored func die per gegeven datum en wel / niet ochtend of middag per groep aangeeft hoeveel plek er is, maar dat zou betekenen dat ik die query moet uitvoeren voor iedere datum in die range. In dit geval...~50 weken (iedere even week over periode van 2 jaar). Dat lijkt mij een erg dure operatie....
[ Voor 3% gewijzigd door CU2morO op 23-07-2012 13:38 ]