Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1216 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySql]Probleme requete interval date début- date fin pour réservation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySql]Probleme requete interval date début- date fin pour réservation

n°1517751
pierro1234
Posté le 21-02-2007 à 16:01:58  profilanswer
 

Je cherche à gérer des réservatons pour des biens immobiliers. Pour ce faire je dois vérifier qu'une nouvelle réservation (qui a une date de debut et une date de fin) n'entre pas en conflit avec un reservation existant deja ds ma table et correspondant a un bien (une reservation etant aussi définie par un id de bien)
 
Voici la structure de ma table:
 
--  
-- Structure de la table `reservation`
--  
 
CREATE TABLE `reservation` (
`id` int(7) NOT NULL auto_increment COMMENT 'id de la reservation',
`dd` date default NULL COMMENT 'date debut reservation',
`df` date default NULL COMMENT 'date fin reservation',
`b_id` int(7) default NULL COMMENT 'id de la villa correspondant a la reservation',
`util_id` int(7) default NULL COMMENT 'id du client correspondant a la reservation',
`confirm` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=60 ;
 
--  
-- Contenu de la table `reservation`
--  
 
INSERT INTO `reservation` (`id`, `dd`, `df`, `b_id`, `util_id`, `confirm`) VALUES  
(1, '2007-02-17', '2007-02-24', 1, NULL, 0),
(2, '2007-02-02', '2007-02-10', 1, NULL, 0),
(59, '2007-02-02', '2007-02-10', 2, NULL, 0);
 
 
Et ma requete qui "soit disant devait me permettre de vérifier qu un interval de temps pour une reservation (et donc pr un bien immo) n'entrait pas en conflit avec une reservation existante correspondant à ce meme bien"
 
 
Exemple:
Je veux rentrer une nouvelle réservation avec date debut= '2007-02-11' et
date fin '2007-02-17' qui concerne le bien 2 (b_id=2). Je dois donc avoir en sortie aucun résultat car je fais un tri sur l'id du bien. Pourtant en sortie j'ai un résultat qui concern le bien n°1. Donc voilà impossible de vérifier à une vérification correcte avant insertion. Je sais que ma requête est bizarroide et que j'ai du me faire des chaussettes.  
 
Requete:
SELECT * FROM reservation  
WHERE '2007-02-11' BETWEEN dd AND df OR '2007-02-17' BETWEEN dd AND df OR dd BETWEEN '2007-02-11' AND '2007-02-17' AND df BETWEEN '2007-02-11' AND '2007-02-17' AND b_id =2 LIMIT 0 , 30
 
Si quelqu'un à la gentilesse de tester mon exemple ou une idée concernant la requete ou la structure de la table je suis preneur.  
 
Merci.

mood
Publicité
Posté le 21-02-2007 à 16:01:58  profilanswer
 

n°1920659
sibko
Posté le 02-09-2009 à 16:28:37  profilanswer
 


ça devrait marcher avec ça :  
 
SELECT *  
FROM
(
 SELECT * FROM reservation  
 WHERE '2007-02-11' BETWEEN dd AND df  
 OR    '2007-02-17' BETWEEN dd AND df  
 OR  dd BETWEEN '2007-02-11' AND '2007-02-17'  
 AND df BETWEEN '2007-02-11' AND '2007-02-17'  
 
) AS A
WHERE A.b_id =2


Message édité par sibko le 02-09-2009 à 16:32:18
n°1920752
cezium134
Posté le 03-09-2009 à 02:41:05  profilanswer
 

Plus simple :

Code :
  1. SELECT * FROM reservation 
  2. WHERE STR_TO_DATE('2007-02-11','%Y-%m-%d') BETWEEN dd AND df
  3. OR STR_TO_DATE('2007-02-17','%Y-%m-%d') BETWEEN dd AND df AND b_id =2 LIMIT 0 , 30

n°2146027
120120
Que du bonheur :)
Posté le 16-06-2012 à 09:56:15  profilanswer
 

Merci

n°2300913
TomSpring
↑ ↑ ↓ ↓ ← → ← → B A
Posté le 19-05-2017 à 12:01:45  profilanswer
 

Merci.
C'est tout bête, et pourtant je m'arrachait les cheveux sur un cas similaire.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySql]Probleme requete interval date début- date fin pour réservation

 

Sujets relatifs
Problème d'accent dans ma base de donnéeSynchro AS400 DB2 --> MySQL
[MySQL] : usage de "into outfile" et "union"probleme simple de profondeur
Caractère à probleme... [Vbasic.Net][MySQL]Execution d'une sous requete qui retourne plusieurs lignes
probleme de liens etrangeRequête sql + javascript
Problème avec tableau dynamique à deux dimensions 
Plus de sujets relatifs à : [MySql]Probleme requete interval date début- date fin pour réservation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR