Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/09/2011, 10h19   #1
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 25
Points : 25
Points : 25
Par défaut Problème de jointure avec paramètres

Salut,

voici une première requète
Code :
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 :
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
Coroebus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 12h14   #2
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
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 :
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)
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h38.


 
 
 
 
Partenaires

Hébergement Web