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 :

jointure externe avec un where, me pose problème!


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 28
    Points
    28
    Par défaut jointure externe avec un where, me pose problème!
    Bonjour,

    Voici la requête qui marche :
    Select p.PROD_NOM, count(ap.APP_ID)
    from PRODUIT p
    left outer join APPEL ap on p.PROD_NUM=ap.PROD_NUM
    group by p.PROD_NOM

    J'obtiens:
    Produit1 10
    Produit2 0 <-- c'est ca qui est important (avoir des zéros)
    Produit3 4
    etc...

    Maintenant si j'ajoute une condition qui n'est pas sur la table PRODUIT:
    Select p.PROD_NOM, count(ap.APP_ID)
    from PRODUIT p
    left outer join APPEL ap on p.PROD_NUM=ap.PROD_NUM
    where ap.APP_DATE_OUV>= :pdate
    group by p.PROD_NOM

    J'obtiens
    Produit1 10
    Produit3 4
    J'ai perdu mon produit 2, alors que j'ai pourtant mis un "left outer join"


    Si quelqu'un a une petit idée... Merci

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Normal, pour les lignes qui n'existent pas dans ap, toutes les colonnes sont nulles, donc non ap.APP_DATE_OUV>= :pdate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select p.PROD_NOM, count(ap.APP_ID) 
    from PRODUIT p 
    left outer join APPEL ap on p.PROD_NUM=ap.PROD_NUM 
    where (ap.APP_DATE_OUV>= :pdate or ap.APP_DATE_OUV is null)
    group by p.PROD_NOM
    Tu peux aussi essayer (je n'ai rien ici pour le faire)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select p.PROD_NOM, count(ap.APP_ID) 
    from PRODUIT p 
    left outer join APPEL ap on p.PROD_NUM=ap.PROD_NUM 
    and ap.APP_DATE_OUV>= :pdate 
    group by p.PROD_NOM
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par Médiat
    Normal, pour les lignes qui n'existent pas dans ap, toutes les colonnes sont nulles, donc non ap.APP_DATE_OUV>= :pdate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select p.PROD_NOM, count(ap.APP_ID) 
    from PRODUIT p 
    left outer join APPEL ap on p.PROD_NUM=ap.PROD_NUM 
    where (ap.APP_DATE_OUV>= :pdate or ap.APP_DATE_OUV is null)
    group by p.PROD_NOM

    Merci beaucoup ça marche impec!

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Je viens de tester la deuxième solution, elle fonctionne aussi, et je la trouve plus élégante
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

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

Discussions similaires

  1. Problème jointure externe et restriction where
    Par Cyrus59 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 10/09/2012, 17h45
  2. Réponses: 5
    Dernier message: 30/03/2009, 10h04
  3. Jointure externe avec clause WHERE
    Par ben53 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 17/03/2008, 08h56
  4. Réponses: 3
    Dernier message: 29/10/2007, 13h04
  5. [SQL] jointure externe avec 3 tables, comment faire ....
    Par grumbok dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/08/2005, 16h13

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