Syntaxe d'une requête avec IN() ou EXISTS() [Résolu]

Signaler
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
-
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
-
Bonsoir,

Je n'arrive pas à trouver la syntaxe correcte pour une requête que j'ai écrite à la base en utilisant NOT IN. Voici la requête :

Rs_Sup.Open "SELECT * FROM SUPPLEMENT WHERE Lib_Sup NOT IN(SELECT S.Lib_Sup, SUM(quantite) AS [Somme], Tar_Sup FROM Contenir AS C, COMMANDE AS CO, SUPPLEMENT AS S WHERE YEAR(Dat_Com)='" & annee & "' AND MONTH(Dat_Com)='" & mois & "' AND Valide_Com=1 AND C.Num_Com=CO.Num_Com AND S.Lib_Sup=C.Lib_Sup GROUP BY S.Lib_Sup, Tar_Sup) ORDER BY Lib_Sup", Cn

le message d'erreur de VB me dit "Une seule expression peut etre spécifiée dans la liste de sélection quand la sous requête n'est pas introduite par EXISTS".
J'ai bien cherché dans msdn et sur le site mais je n'arrive pas à comprendre comment articuler la fonction EXISTS.

Merci d'avance
A voir également:

2 réponses

Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
3
Tu peux faire un IN (ou un NOT IN) uniquement si tu compares le même nombre de champs !
Tu n'as donc plus besoin du GROUP BY et tu peux le remplacer par un DISTINCT

SELECT *
FROM
SUPPLEMENT
WHERE Lib_Sup
NOT IN
(
SELECT DISTINCT S.Lib_Sup<STRIKE>, SUM(quantite) AS [Somme], Tar_Sup</STRIKE>
FROM
Contenir AS C,
COMMANDE AS CO,
SUPPLEMENT AS S
WHERE YEAR(Dat_Com)= '" & annee & "'
AND MONTH(Dat_Com)='" & mois & "'
AND Valide_Com=1
AND C.Num_Com=CO.Num_Com
AND S.Lib_Sup=C.Lib_Sup
<STRIKE>GROUP BY S.Lib_Sup, Tar_Sup</STRIKE>
)
ORDER BY Lib_Sup

Si tu veux utiliser le NOT EXISTS, ça donne ceci :
SELECT *
FROM
SUPPLEMENT
WHERE NOT EXISTS
(
SELECT 1
FROM
Contenir AS C,
COMMANDE AS CO
WHERE YEAR(Dat_Com) ='" & annee & "'
AND MONTH(Dat_Com)='" & mois & "'
AND Valide_Com=1
AND C.Num_Com=CO.Num_Com
AND SUPPLEMENT.Lib_Sup=C.Lib_Sup
)
ORDER BY Lib_Sup
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 116 internautes nous ont dit merci ce mois-ci

Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Merci beaucoup,

Ah oui forcement, j'avais repris ma première requête et forcement le group by et les autres champs sont inutiles.
Petite question pour le NOT EXISTS, le 1 se réfèrè à quoi?