login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Gemiddeld aantal per maand opvragen uit database

Offline Diko - 12/10/2008 17:49
Avatar van DikoPHP interesse Ik ben opzoek naar een manier om de gemiddelde bezetting van een hotel te berekenen in SQL (Liefst Oracle compatible maar anders is MySQL ook goed, dus zonder tussenkomst van PHP of een andere taal!). Nu is het geval dat er kamers bij kunnen komen (bijv door de bijbouw van een nieuw gebouw o.i.d.) Dus er moet eigenlijk per dag gekeken worden wat de bezetting is om aan de hand hiervan een gemiddelde per maand uit te kunnen rekenen.

De desbetreffende tabellen zien er ongeveer als volgt uit:
Kamers: Kamernr, <kamertype>, date_opened, date_closed
Boekingen: Boekingnr, <kamernr>, vanaf_datum, tot_datum
(Bold geeft Primary key, <> geven een foreign key aan)

De meest logische manier lijkt mij om eerst een view te creeeren welke de beschikbaarheid en de bezetting per dag weergeeft. Echter kan ik me niet bedenken hoe ik een view creeer welke per dag een gemiddelde geeft.

Wie o wie kan/wilt met mij meedenken?

4 antwoorden

Gesponsorde links
Offline marten - 12/10/2008 21:46
Avatar van marten Beheerder Je kan met de avg() functie van Oracle het gemiddelde berekenen. Deze kan je dan met , lijkt mij een simpele query, een WHERE wel koppelen aan boekingnummer en hotel.
Offline Diko - 12/10/2008 22:09 (laatste wijziging 12/10/2008 22:16)
Avatar van Diko PHP interesse Mjah, ik ben wel bekend met analytische functies etc. Echter wil ik een lijstje waar ook voor dagen dat er geen boekingen zijn een bezetting uitkomt.

En group by een vanaf of tot datum ofzo heeft ook weinig zin. Stel dat er 5 van de 10 kamers verhuurd zijn... allen van 21-12-05 tot 31-23-05. Dan wil ik ook voor 22-12-05 zien dat er 5 kamers zijn geboekt.

En de koppeling aan boekingnummer is helemaal niet nodig ;)
Offline Rik - 17/10/2008 16:54
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Eigenlijk zou er in mysql een soort functie moeten zijn als in php range(), zodat je voor een hele set data kan joinen met de boekingen.

Je kunt met while in een procedure gaan werken, maar ik vraag me af of het niet veel makkelijker kan.
Offline Diko - 17/10/2008 18:06
Avatar van Diko PHP interesse Mjah, k zit nu met het idee te spelen om dmv een trigger te zorgen dat er een tabel gevuld wordt met van elke dag een record. Een hele simpelen tabel met maar 1 kolom 'datum'. Dan is het heel simpel joinen met deze tabel, echter zorgt het wel weer voor (onnodige) overhead.

Is echter wel veruit de makkelijkste oplossing.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.175s