Im ayant un peu d'un bloc mental sur celui-ci.Regroupement des dates par mois dans une requête SQL Server (procédure stockée)
Je suis système de réservation pour une chambre d'hôtel et il contient une table comme si
BookingRoomLink
BookingId (FK)
RoomID (FK)
start_date
date_fin
I » d aiment interroger les données pour extraire les niveaux d'occupation pour chaque mois. Je pourrais faire ceci manuellement (c.-à-d. Pour le mois passé faire quelque chose comme ceci).
SELECT BookingRoomLink.Start_Date,
BookingRoomLink.End_Date,
DATEDIFF("d", BookingRoomLink.Start_Date, BookingRoomLink.End_Date) as RoomNights
FROM BookingRoomLink
WHERE BookingRoomLink.Start_Date >= dateadd(m, -1, getdate())
AND BookingRoomLink.End_Date <= GETDATE()
Ensuite, je peux faire un compte sur les résultats ou similaire qui me donnerait les nuits des chambres « utilisées » et soustrayez contre les nuits de chambres disponibles dans un mois.
Par exemple. 10 chambres x 30 jours dans le mois = 300 nuits possibles disponibles. 150 utilisés (résultat de la requête) = 50% d'occupation.
Le problème
Id aiment automatiser ce dans une procédure stockée.
Est-il possible de regrouper ceci en mois pour une année donnée?
Comment est-ce que je m'assurerais que les réservations qui chevauchent une limite de mois sont convenablement manipulées?
Les données d'échantillon et les résultats attendus aident toujours! – JonH