IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

requete de selection des chambres vide


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 126
    Points : 51
    Points
    51
    Par défaut requete de selection des chambres vide
    salut tout le monde.
    j'ai 3table qui sont:chambre(id_ch,n_ch,etage)
    hors_ser(id_p,date_d,date_f)
    ch_hs(id_ch,id_p)==>avec ces 3trois table et d'aprés les 2
    date validé par un client je veut chérché les chambre qui sont vide entre les 2 date.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT DISTINCT  n_ch 
    FROM chambre, ch_hs, hors_ser 
    WHERE chambre.id_ch=ch_hs.id_ch 
    AND hors_ser.id_p=ch_hs.id_p 
    AND '$x'  NOT BETWEEN 'hors_ser.date_d && hors_ser.date_f' 
    AND '$y' NOT BETWEEN 'hors_ser.date_d && hors_ser.date_f'||chambre.id_ch NOT IN (
        select id_ch 
        from ch_hs
    )
    Veuillez m'aider à ameliorer cet requete car elle m'affiche des valeurs parfois erronées suivant les dates entrées par le client .
    merci bien d'avance et salut tout le monde

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Rien d'étonnant à ce que cette requête sorte des résultats parfois surprenant... Ce qui est surprenant, c'est qu'elle sorte déjà des résultats .

    Petit listing des soucis que j'y vois (non exhaustif) :
    • Qu'y a-t-il dans les variables $x et $y ? Des noms de colonnes ? Si oui, de quel type (entier, date, chaîne de caractères...) ?
    • la syntaxe BETWEEN est BETWEEN valeur1 AND valeur2 (pas de &&)
    • sous MySQL, la concaténation se fait à l'aide de la fonction CONCAT(chaine1, chaine2,...)
    • qu'est sensé faire le || à la fin ? Un OR ?



    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 126
    Points : 51
    Points
    51
    Par défaut
    salut et merci bien ced.
    $x et $y contient les date qui sont entré par le client qui sont sous cet format(2009-03-02).
    ce qui me bloque est que :si le client a saisie 2009-03-02 2009-03-05
    et j'ai une chambre qui est réservé entre 2009-03-03 2009-03-04 elle m'affiche comme une chambre qui n'est pas réservé.merci bien encore une foit et bon courage.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 33
    Points : 36
    Points
    36
    Par défaut
    A adapter avec ton langage SQL qui n'est pas très standard. Le principe, on fait une jointure externe entre la table chambre et les chambres occupées. Ensuite on ne garde que les chambres n'ayant aucune ligne de jointure, c'est à dire où il n'y a aucune date de réservation dans la période demandée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT chambre.n_ch
    FROM chambre
    LEFT OUTER JOIN (
      SELECT ch_hs.id_ch
      FROM ch_hs, hors_ser
      WHERE ch_hs.id_p = hors_ser.id_p
        AND hors_ser.date_d <= '$y' AND hors_ser.date_f >= '$x'
      ) occupe ON occupe.id_ch = chambre.id_ch
    WHERE occupe.id_ch IS NULL

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 126
    Points : 51
    Points
    51
    Par défaut
    salut et merci tout le monde et spécialement VINCHOU.
    mais vraiment c'est trés gentil .
    ça marche parfaitement la requete et je suis vraiment .
    bon courage et salut

  6. #6
    Membre actif Avatar de schwarzy2
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 464
    Points : 288
    Points
    288
    Par défaut
    s'il-te-plaît pense à mettre , d'autres personnes lisent ce sujet pour t'aider..pour découvrir à la fin que c'est inutile, tu as déja résolu ton problème!
    merci.
    Feel good, feel geek

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requete show renvoie des champs vides
    Par nbutin dans le forum Requêtes
    Réponses: 0
    Dernier message: 13/02/2012, 16h10
  2. [AC-2010] Requete de selection des enregistrements entrés aujourd'hui
    Par saiddz dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/08/2011, 19h05
  3. Requetes portant sur des champs vides
    Par Pucho dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 18/10/2007, 21h44
  4. requete devant ramener des enregistrements vides
    Par CrazyCat dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/06/2006, 17h25
  5. [SELECT] Faire un select avec des champs vides
    Par MinsK dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/08/2005, 00h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo