31. marts 2012 - 17:55Der er
13 kommentarer og 1 løsning
Næste ledige dato
Har en booking tabel med to kollonner StartDato og SlutDato. Hvordan får man næste ledige dato? I tabellen ligger der en række af bookings og skal finde næste ledige dato for en given service. Kan dette lade sig gøre i SQL hvis ja hvordan?
Undskyld! Det er mig, jeg har ikke nærlæst godt nok. Men det kunne jo godt være at der var "hul" til en booking hvis man kendte omfanget(varigheden) af den bookede service.
Hej begge kigger det lige igennem i morgen. Det er der er det sværre er de forskellige bookinger ikke nødvendigvis ligger lige efter hinananden og at den første ledeige kan være imellem to bookinger. Men kigger lige på jeres svar i morgen.
ah ja - hvis vi forlader find sidste og læg en til og går tilbage til selve problemet så er der masser ting som skal overvejes: - kan man bruge et hul? - er det OK at booke weekend/påskferie/juleferie? etc.
Jeg tror den nemmeste måde at forklare det på er nok som du selv skriver find første hul eller i dag hvis der ikke er nogle bookinger. Det må heller ikke være en søndag, men første del ville også være fint inde for scope af det her spørgsmål :D Jeg tænker lidt om man kan select'e alle huller der er imellem en række bookinger så kunne man evt håndtere den sidste del i koden (selvom det ville være smukt hvis man også kunne håndtere det i sql).
Normal stil er jo at have en StartDate og en EndDate eller sådan noget, men jeg har mange gange fundet det langt lettere bare at have en kolonne...
eks.vis BookingDate
Tabellen kunne se sådan her ud:
BookingId int ServiceId int BookingDate datetime
Når en så booker service 2 i perioden imellem 01.04 og 04.04, vil det blive indsat som:
2 01.04 2 02.04 2 03.04 2 04.04
Derved er det ret nemt at lave en forespørgsel, eks.vis select max(BookingDate) from Table where ServiceId = 2
Og hvis man vil have "huller", så left joines der blot sammen med en datotabel som har alle tilgængelige datoer for den pågældende service. Der findes mange scripts i tsql der kan generere datotabeller.
Det er som sagt lidt anderledes end hvad man ellers ser, men jeg finder den sære model her meget anvendelig :)
Ja det vil faktisk løse problem stillingen, plus det at vise data i evt. en kalender kontrol vil være nemmere. Den metode havde jeg ikke lige overvejet. Tak for det gamle dreng, smid et svar!
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.