Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
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 27/04/2006, 14h52   #1
Membre habitué
 
Inscription : juin 2004
Messages : 212
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 212
Points : 118
Points : 118
Par défaut [db2][sql]Requête reflexive!

Salut, alors voilà mon problème:

J'ai 2 table de ce type:

Code :
1
2
composition(num_kit,etablissement,num_composant)
article(num_article, etablissement)
En fait les num_article que je veux récupérer sont des kits donc ce qui veut dire qu'ils ont plusieurs composants. Les enregsitrements des tables sont de ce type là:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
                   COMPOSITION
 num_kit            etablissement          num_composant
 1                        FR                     50
 1                        FR                     51
 1                        GB                     51
 2                        USA                   52
 3                        FR                     53
 3                        FR                     54
 3                        USA                   54
 
                         ARTICLE
 num_article                etablissement
 50                             FR
 51                             FR
 51                             GB
 52                             USA
 52                             GB
 53                             FR
 54                             FR
 54                             USA
Ce que je voudrais récupérer comme info c'est:
Le numéro du kit, l'établissement du kit, le numéro du composant pour lesquels le composant n'existe pas dans la table article sur les mêmes dépots que le kit dans la table composition. Car un composant d'un kit doit exister sur tous les dépot ou le kit existe.

Exemple de résultat:

Code :
1
2
3
num_kit           etablissement          composant
 1                  GB                    50
 3                  USA                   53
J'ai fais le code suivant mais qui ne fonctionne pas comme je voudrais:
Code :
1
2
3
4
5
6
7
SELECT DISTINCT c.num_kit,c.etablissement,                    
t.composant,t.etablissement                                
FROM composition c LEFT JOIN                                 
(SELECT c.composant, a.etablissement                                         
 FROM composition c JOIN article a ON c.etablissement=a.etablissement 
AND  c.composant=a.num_article)t 
ON c.composant=t.composant AND t.etablissement IS NULL
Voilà j'èspère avoir été clair
Merci de vos réponses
yoyopi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2006, 17h13   #2
Membre Expert
 
Avatar de TheLeadingEdge
 
Inscription : mai 2005
Messages : 1 200
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 1 200
Points : 1 260
Points : 1 260
Bonjour,

Code :
1
2
3
4
5
6
7
8
9
10
 
SELECT  composition.num_kit,
 composition.etablissement,
 composition.num_composant
FROM composition
LEFT OUTER JOIN article
ON  composition.etablissement = article.etablissement
AND composition.num_composant = article.num_article
WHERE article.num_article IS NULL
AND article.etablissement IS NULL;
A +
TheLeadingEdge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2006, 08h08   #3
Membre habitué
 
Inscription : juin 2004
Messages : 212
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 212
Points : 118
Points : 118
Merci beaucoup c'est trop bien elle fonctionne impecable
yoyopi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h00.


 
 
 
 
Partenaires

Hébergement Web