Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Taux occupation [ SQL Server, MSDE, SQL Express / Requêtes ] (citt)

mardi 9 septembre 2008 à 11:31:30 | Taux occupation

citt

Bonjour,

Je voudrait savoir comment réaliser une requete me donnant le taux d'occupation de chambres.
Voici ma table :

[code]
CREATE TABLE [dbo].[reservation] (
    [Id] [int] IDENTITY (1, 1) NOT NULL ,
    [id_chambre] [int] NULL ,
    [dt_deb] [datetime] NULL ,
    [dt_fin] [datetime] NULL
) ON [PRIMARY]
GO
[/code]

et voici les données :

[code]
INSERT INTO reservation(id_chambre, dt_deb, dt_fin) VALUES(1, '2008-08-01', '2008-08-05');
INSERT INTO reservation(id_chambre, dt_deb, dt_fin) VALUES(1, '2008-08-06', '2008-08-15');
INSERT INTO reservation(id_chambre, dt_deb, dt_fin) VALUES(1, '2008-08-16', '2008-08-30');
INSERT INTO reservation(id_chambre, dt_deb, dt_fin) VALUES(2, '2008-07-25', '2008-09-30');
INSERT INTO reservation(id_chambre, dt_deb, dt_fin) VALUES(3, '2008-08-05', '2008-09-30');
[/code]

Et la je voudrait connaitre le taux d'occupation pour le mois 08, j'ai creer une requete pour le moment mais elle n'arrive pas a prendre en compte pour la chambre ayant l'id 2 qu le taux d'occupation est a 100%

Qq a deja eut ca a faire ?

Merci d'avance,

Citt_jr
Bats toi avec les meilleurs, crève avec le reste
[ Lien ]

mardi 9 septembre 2008 à 14:09:04 | Re : Taux occupation

crn_c21

Peux tu écrire ta requète!!

mardi 9 septembre 2008 à 14:31:27 | Re : Taux occupation

citt

Voici le début de ma requête :
SELECT SUM((DATEDIFF("d", Dt_Deb, Dt_Fin)+1)), id_chambre
FROM reservation
WHERE ((Dt_Deb > convert(datetime, '2008-08-01') AND (Dt_Deb < convert(datetime, '2008-08-30') OR Dt_Fin < convert(datetime, '2008-08-30'))) OR
       (convert(datetime, '2008-08-01') > Dt_Deb AND (convert(datetime, '2008-08-01') < Dt_Fin OR convert(datetime, '2008-08-30') < Dt_Fin)) OR
       (Dt_Deb = convert(datetime, '2008-08-01') AND (Dt_Fin IS NOT NULL AND convert(datetime, '2008-08-30') IS NOT NULL)))
GROUP BY id_chambre

Elle me permet de récupérer le nombre de jour d'occupation, mais elle prend en compte trop de valeur !!



Citt_jr
Bats toi avec les meilleurs, crève avec le reste
[ Lien ]

vendredi 12 septembre 2008 à 09:57:56 | Re : Taux occupation

citt

Réponse acceptée !
Voila j'ai trouvé la solution :

DECLARE @Dt_Deb_Month AS datetime;
DECLARE @Dt_Fin_Month AS datetime;

SET @Dt_Deb_Month = convert(datetime, '2008-08-01');
SET @Dt_Fin_Month = DateAdd ("d", -1 ,DateAdd ("m", 1 ,@Dt_Deb_Month));

DECLARE @Nb_Jours_Mois AS integer;

SET @Nb_Jours_Mois = DateDiff("d", @Dt_Deb_Month , DateAdd ("m", 1 , @Dt_Deb_Month))

-- Donne le premier jour du mois, le dernier et le nombre de jour du mois
SELECT @Dt_Deb_Month, @Dt_Fin_Month, @Nb_Jours_Mois


SELECT
SUM( CASE WHEN Dt_Deb >= @Dt_Deb_Month AND Dt_FIn <= @Dt_Fin_Month THEN (DATEDIFF("d", Dt_Deb, Dt_Fin)+1)
    WHEN Dt_Deb < @Dt_Deb_Month AND Dt_FIn <= @Dt_Fin_Month THEN (DATEDIFF("d", @Dt_Deb_Month, Dt_Fin)+1)
    WHEN Dt_Deb >= @Dt_Deb_Month AND Dt_FIn > @Dt_Fin_Month THEN (DATEDIFF("d", Dt_Deb, @Dt_Fin_Month)+1)
    WHEN Dt_Deb < @Dt_Deb_Month AND Dt_FIn > @Dt_Fin_Month THEN @Nb_Jours_Mois
END) as Nb_Jours, id_chambre

FROM reservation

WHERE  ((Dt_Deb > @Dt_Deb_Month AND (Dt_Deb < @Dt_Fin_Month OR Dt_Fin < @Dt_Fin_Month)) OR
       (@Dt_Deb_Month > Dt_Deb AND (@Dt_Deb_Month < Dt_Fin OR @Dt_Fin_Month < Dt_Fin)) OR
       (Dt_Deb = @Dt_Deb_Month AND (Dt_Fin IS NOT NULL AND @Dt_Fin_Month IS NOT NULL)))
GROUP BY id_chambre

Citt_jr
Bats toi avec les meilleurs, crève avec le reste
[ Lien ]



Cette discussion est classé dans : id, dt, reservation, chambre, deb


Répondre à ce message

Sujets en rapport avec ce message

Left outer join [ par ALLODREN ] Sauriez vous pourquoi cette requête ne me calcule pas la somme correctement ? SELECT k.id_produit, k.id_fournisseur, k.dt_document, k.qt_cmd chambre dans laquelle il y a des lits disponiblent dans un hopital [ par sexbombrock ] Bonjour, Mon soucie vient de la requette a fai modification dans une jointure [ par marocmarocmaroc ] Salutj'ai un problème en sql/php  je veux modifier des champs issues de deux  tables  article (code_article,designation) et article_magasin(qte_stocke Procedure de recherche [ par hardzip ] Bonjour tout le mondeJe suis actuellement entrain de mettre en place un formulaire de recherche avec asp et  .NET et j'ai un probleme qui me bloque de SQL server 2005 - script pour récupérer tous trg - proc - fonc [ par slau ] Bonjour à tous, Besoin d'un p'tit coup e demain pour le script joint. Certains des 'programmes' que j'extraits (un trigger en l'occurence) est tronqué if dans une procédure stocké ? [ par jesusonline ] Bonjour, je ne connais pas encore SQLj'ai une table articles qui a un champ ID et je voudrais une fonction stocké qui prend en paramètre un ID et qui Requete utilisant un IF (?) [ par Gamer_man ] Bonjour :)J'ai un petit probleme avec une requete...J'explique un peu :Sur mon site, il est possible de poster des commentaires en etant membre ou en 2 liens entre 2 tables [ par fstyle ] Bonjour/soirJe suis en train de créer un système pour gérer ma comptabilité ...et je suis devant un problème !Dans mon mld, il y a 2 tables : t_compta Faire plusieurs if dans un procedure stockee [ par chris81 ] bonjour,comment puis je faire pour verifier plusiseurs if dans la meme procedure stockee c'est a direif not exist(SELECT Id FROM...) et if not exists(


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,874 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.