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

Langage SQL Discussion :

une non equi-jointure sur deux tables


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut une non equi-jointure sur deux tables
    Bonjour,
    Je n'arrive pas à ecrire une requete qui consiste à recuperer la liste des chambres libres a un jour j.

    Donc j'ai 2 tables :
    - chambre (chb_id, chb_num, chb_type)
    - occupee(chb_id, chb_reserve, chb_preté, chb_date)

    (Le shema relationnel est le meme que celui de sqlpro (sql de A a Z))

    voici ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ch.chb_id, ch.chb_num, ch.chb_type
    FROM chambre ch JOIN occupee o ON ch.chb_identifiant=o.chb_id
    WHERE  o.chb_date <> cast(convert(varchar(10),GETDATE(), 111) as datetime)
    Ceci m'affiche la liste des chambres qui sont occupe un autre jour que le jour j (Aujourdui'hui)

    comment je peux modifier cette requette pour qu'elle fasse ce que je souhaite c'est a dire la liste des chambres libre a une date donnée.

    Merci par avance.
    ..::: aa du bocal ..:::
    Il nous faut deux ans pour apprendre à parler et toute une vie pour apprendre se taire.
    N'oublier surtout pas de ne pas poster la réponse même si on vous a pas aidé

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Donc ce n'est plus en non-equi-jointure ou alors par 2 critéres avec >= et <=
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Utilisez le not Exists par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT 
        ch.chb_id, ch.chb_num, ch.chb_type
    FROM 
      chambre ch 
    WHERE NOT EXISTS  (
          SELECT 1
          FROM occupee o 
          WHERE
               a.chb_id=o.chb_id and
               o.chb_date <> cast(convert(varchar(10),GETDATE(), 111) as datetime))
    a tester et a adapter

    Bon courage
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  4. #4
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut
    Merci pour vos reponses.
    ca veut dire quoi le SELECT 1
    tu fais une selectionn de quoi ?

    et j'ai testé ta requette, elle fonctionne correctement sauf que n'oublies pas que le but c'est de recuperer les chambres libres y compris le jour j.
    Merci encore de ce coup de pouce.
    ..::: aa du bocal ..:::
    Il nous faut deux ans pour apprendre à parler et toute une vie pour apprendre se taire.
    N'oublier surtout pas de ne pas poster la réponse même si on vous a pas aidé

  5. #5
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut
    J'ai reussi a la modifier pour qu'elle fasse ce que je veux maintenant je dois obligatoirement utiiser JOIN mais n'empeches que j'attend STP la reponse a la question pk un SELECT 1 ?

    merci beaucoup

    RESOLU !
    ..::: aa du bocal ..:::
    Il nous faut deux ans pour apprendre à parler et toute une vie pour apprendre se taire.
    N'oublier surtout pas de ne pas poster la réponse même si on vous a pas aidé

  6. #6
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    le but etait de vous montrer l'utilisation du not exists ... J'avais repris votre requete telle quelle, d'ou le "A adapter".

    Le select 1 ne sert que de marqueur de selection (existe t il un enregistrement qui correspond a criteres adequates), vous auriez pu mettre une colonne de votre table, voir un * mais chacun ses habitudes ...

    Bon courage
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

  7. #7
    Membre régulier Avatar de AliJava
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 184
    Points : 82
    Points
    82
    Par défaut
    merci pour la reponse claire et concis.

    aa+
    ..::: aa du bocal ..:::
    Il nous faut deux ans pour apprendre à parler et toute une vie pour apprendre se taire.
    N'oublier surtout pas de ne pas poster la réponse même si on vous a pas aidé

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

Discussions similaires

  1. pbls de jointure sur deux tables d'une base de donnée
    Par ciolvic dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/06/2010, 09h32
  2. jointure sur deux table
    Par mioke dans le forum SAS Base
    Réponses: 10
    Dernier message: 13/03/2008, 16h24
  3. [Requête] Jointure sur deux tables.
    Par Invité dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/11/2007, 11h36
  4. Jointure sur deux tables
    Par shinji_rem dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/04/2007, 10h18
  5. Jointures sur deux tables
    Par spirou dans le forum Requêtes
    Réponses: 6
    Dernier message: 31/05/2006, 15h46

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