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 :

Requête SQL avec inner join incorrect


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Par défaut Requête SQL avec inner join incorrect
    Bonjour !

    J'ai un problème avec une requete que j'essaie de faire afficher (sous windev, pour la précision).

    Pour le contexte, j'ai des demandes, chaque demandes a 2signatures qui sont d'un types différent (on les appellera 1 et 2, ça tombe bien, c'est le numéro de leurs ID ), et chaque signature peut être accordé ou non.

    Donc j'ai une table demande, ou sont la plupart des informations de la demande, une table demande_signature, ou j'ai deux lignes pour chaque demande, avec l'id de la demande, l'id de la signature (1ou2), et accord qui est à 0 ou 1. Enfin une table signature, ou il y a donc deux types.

    Je voudrais pouvoir trier ces enregistrements notamment si elles possèdent une signature accordé ou non. Par exemple, ceux dont la signature 1 est accordé, et la signature 2 n'est pas accordés.

    Pour le moment, j'ai ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT  * 
    FROM DEMANDE  
    LEFT JOIN Signature_Demande on Demande.IDDemande = Signature_Demande.IDDemande  
    WHERE  (Signature_Demande.IDSignature = 2 AND Signature_Demande.Accord=0)
    AND (Signature_Demande.IDSignature = 1 AND Signature_Demande.Accord=1)
    Bon en réalité j'ai simplifié car j'ai d'autre trie et je ne choisis pas tout dans demande, mais c'est a peu près ça.

    Et ce code ne fonctionne pas, je pense que c'est parce que je demande a Signature_Demande.IDSignature d'être en même temps égale a 1 et a 0 (pour accord aussi). Néanmoins, je ne vois pas comment faire pour trouver une autre solution.

    Une idée ?

    Merci d'avance !

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par FabienLep Voir le message
    Et ce code ne fonctionne pas, je pense que c'est parce que je demande a Signature_Demande.IDSignature d'être en même temps égale a 1 et a 0 (pour accord aussi).
    Effectivement cette analyse est la bonne.
    J'ai lu en diagonale votre besoin, mais essayez de simplement changer le AND du début de la ligne 5 par un OR.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Par défaut
    Malheureusement cela ne fonctionne pas. En effet j'ai besoin de récupérer ceux dont la signature 1 est accordé ET la signature 2 refusé.
    Votre solution affiche également ceux dont les deux sont accordé/refusé.

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 442
    Par défaut
    Bonjour,
    Comme il y a un test dans la clause WHERE sur une colonne de la table Signature_Demande , la jointure externe se "transforme" en jointure interne.
    Il faut déplacer ces test dans la condition de jointure.

    Tatayo.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Par défaut
    Heuuu, oui peut être, enfin j'ai un peu de mal à voir ce que je dois faire exactement.
    Je pense qu'il faut que je mette ma condition juste après le INNER JOIN, mais je pourrais avoir un exemple que je comprenne un peu mieux ? Cette notion est un peu flou pour moi je dois dire !

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953

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

Discussions similaires

  1. Requête SQL avec inner join, pas certaine de ma requête
    Par marieSQL dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/03/2015, 23h08
  2. Requête update avec inner join
    Par mattmax dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 23/05/2013, 14h53
  3. [AC-2003] Resultat de requête SQL avec des dates incorrect
    Par rockin-bones dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 19/05/2011, 14h35
  4. [Access] Problème dans une requête SQL avec INNER JOIN ?
    Par bds2006 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/06/2006, 10h57
  5. requête sql avec clause INNER JOIN
    Par new_wave dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/08/2005, 15h47

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