Probleme clause NOT EXISTS et NOT IN
Bonjour,
Je reviens sur le forum pour avoir un peu d'aide. J'ai un petit problème avec ma requête sql avec laquelle j'utilise comme contrainte NOT EXISTS ou not in.
En fait, j'ai une table contenant toutes les valeurs (table Stock) et une autre table contenant une partie des valeurs (table Stock2) de la précédente table. Mon but est d'afficher toutes les valeurs qui ne sont pas contenues dans la seconde table Stock2. En gros, je voudrais afficher tous les libellés = 'lost' qui ne sont pas dans Stock2 et qui ont donc un numéro différent de Stock.
Table Stock
Libelle | numero
lost | 1
lost | 30
toto | 2
lost | 30
alpha |19
alpha | 20
lost | 15
Table Stock2
Libelle | numero
lost | 1
lost | 25
alpha | 19
J'ai essayé de faire ça plusieurs façons mais sans succés:
Code:
1 2 3 4 5 6 7 8
| SELECT *
FROM Stock
WHERE
Stock.[numero]=
NOT EXISTS
(SELECT distinct *
FROM T_Stock
); |
Ca me retourne rien :(
de même si je rajoute le libellé comme contrainte supplémentaire
Code:
1 2 3 4 5 6
| select distinct * from Stock
where
Stock.[libelle] = 'lost' and
Stock.numero =
not exists
(select distinct * from Stock2 where Stock2.[libelle]='lost'); |
J'ai essayé avec la clause not in :
Code:
1 2 3 4 5 6 7 8
| SELECT * from Stock
WHERE
Stock.libelle = 'lost'
AND
Stock.numero
NOT IN
(
SELECT Stock2.numero from Stock2 where Stock2.libelle = 'lost'); |
avec cette dernière ça me sort une liste abominable et qui est fausse :( .
Si quelqu'un peut m'aider.
Merci.