Bonjour à tous.
J'ai un problème dans l'écriture d'un requête...
Je cherche tous les "NUMERO" de la table "test" qui ont une ligne "A" mais pas de ligne "B" (soit 1 et 3)Code:
1
2
3
4
5
6
7
8 CREATE TABLE test ( NUMERO INTEGER, VALEUR CHAR(1) ) GO INSERT test VALUES (1,'A') INSERT test VALUES (2,'A') INSERT test VALUES (2,'B') INSERT test VALUES (3,'A') INSERT test VALUES (4,'B') GO
Je ne vois pas comment m'en sortir alors j'ai commencé par ceci :RésultatCode:
1
2
3
4
5
6 SELECT * FROM test A LEFT OUTER JOIN test B ON A.NUMERO = B.NUMERO WHERE A.VALEUR = 'A' AND B.VALEUR = 'B'
et bizarrement mon LEFT OUTER JOIN se comporte comme un INNER JOIN !!!Code:
1
2
3 NUMERO VALEUR NUMERO VALEUR 2 A 2 B
je m'attendais plutôt à un résultat comme celui-ci :
(puisque c'est un OUTER JOIN de A vers B je devrais avoir toutes les lignes de "A" non ?)
Quelque chose que je n'ai pas compris ?Code:
1
2
3
4
5 A.NUMERO A.VALEUR B.NUMERO B.VALEUR 1 A NULL NULL 2 A 2 B 3 A NULL NULL
Comment résolvez vous mon problème de départ ? (les "NUMERO" qui ont une ligne "A" mais pas de ligne "B")
Merci !