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:
Ca me retourne rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT * FROM Stock WHERE Stock.[numero]= NOT EXISTS (SELECT distinct * FROM T_Stock );
de même si je rajoute le libellé comme contrainte supplémentaire
J'ai essayé avec la clause not in :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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');
avec cette dernière ça me sort une liste abominable et qui est fausse .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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');
Si quelqu'un peut m'aider.
Merci.
Partager