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

Développement SQL Server Discussion :

Problème de jointure avec paramètres


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 44
    Par défaut Problème de jointure avec paramètres
    Salut,

    voici une première requète
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT     TaBlogSIE_Elements.IdElement, TaBlogSIE_Elements.IdClient, TaBlogSIE_Elements.NomUsuel, TaBlogSIE_Elements.IdEtat, 
                          TaBlogSIE_ElementIntervention.IdIntervention
    FROM         TaBlogSIE_Elements LEFT OUTER JOIN
                          TaBlogSIE_ElementIntervention ON TaBlogSIE_Elements.IdElement = TaBlogSIE_ElementIntervention.IdElement
    WHERE     (TaBlogSIE_Elements.IdClient = 4111) AND (TaBlogSIE_Elements.IdEtat = 1)
    elle me renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    IdElement	IdClient	NomUsuel	IdEtat	IdIntervention
    118	4111	ECHA1959 	1	NULL
    192	4111	ECHA0586	1	11
    193	4111	SERVEUR	1	11
    246	4111	Réseau	1	NULL
    261	4111	ECHA1461	1	NULL
    287	4111	ECHA0936	1	NULL
    395	4111	Système Informatique	1	NULL
    396	4111	ECHA1189	1	NULL
    c'est parfait, elle me renvoie tous les elements du client et je sais si tel element fait partie de l'intervention

    maintenant si je veux filtrer les elements de la table TaBlogSIE_ElementIntervention, je n'ai plus tous les élements

    Comment puis-je faire ? Merci

  2. #2
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Pour faire des filtres sur une table qui est en outer join, du tas deux solutions :

    Soit tu mets tes filtres dans le ON du JOIN (attention à la sémantique, on ne peut pas tout mettre dans le ON)
    Soit tu mets tes filtres dans le WHERE, et à ce moment, pour chaque élément, il faut vérifier is IS NULL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select a.col1, b.col2
    from a
    left outer join b on b.id = a.id
    where (b.col3 = 'a' or b.col3 is null)

Discussions similaires

  1. Problème affichage subreport avec paramètre
    Par gamma dans le forum iReport
    Réponses: 6
    Dernier message: 12/04/2007, 14h54
  2. Problème de lien avec paramêtre et facelets
    Par Tikaf dans le forum JSF
    Réponses: 2
    Dernier message: 08/01/2007, 11h14
  3. [PostgreSQL 8.1] Problème de jointures avec une Fk null
    Par Reward dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/11/2006, 08h25
  4. [SQL server 2000] Problème de jointure avec 'Case'
    Par Tankian dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/06/2006, 17h42
  5. Problème de jointure avec INNER JOIN et LEFT OUTER JOIN
    Par tonio-lille dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/02/2006, 12h45

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