Voilà, je fais une petite application sous Access 2003.
Sans entrer dans les détails j'ai une grosse vilaine requête qui refuse de marcher...
Il me dit : "Cette opération n'est pas autorisée dans les sous-requêtes" et ensuite me surligne tout ce qui est dans le "IN(...)". Comme je suis pas super doué en requête j'aurai besoin d'un petit coup de pouce
Voici ma requête :
SELECT Nom
FROM Entreprises
WHERE Num_entreprise IN(SELECT Num_demandeur
FROM Attaque
WHERE (Num_defendeur=1 And Num_affaire=(SELECT Num_affaire
FROM Litiges
WHERE(Annee=Forms![Recherche affaire].Annee And Num_section=Forms![Recherche affaire].Num_section)
)
)
UNION
SELECT Num_defendeur
FROM Attaque
WHERE (Num_demandeur=1 And Num_affaire=(SELECT Num_affaire
FROM Litiges
WHERE(Annee=Forms![Recherche affaire].Annee And Num_section=Forms![Recherche affaire].Num_section)
)
)
)
Merci d'avance
EDIT :
Merci pour vos réponses (petite blague xD)
Bon j'ai trouvé la solution, si jamais ça peut aider, il semblerait qu'on ne puisse pas mettre d'UNION dans une sous requête (pour access du moins, encore une fois je ne suis pas un expert en requêtes SQL). J'ai donc contourné le problème en sortant le UNION (en gros, pour parler maths, j'ai développé ^^' J'avais "SELECT A WHERE(SELECT B UNION SELECT C)" j'ai transformé en "SELECT A WHERE(SELECT B) UNION SELECT A WHERE(SELECT C)"
Voici le code de ma requête finale qui semble marcher :
SELECT Nom
FROM Entreprises
WHERE Num_entreprise IN(SELECT Num_demandeur FROM Attaque WHERE (Num_defendeur=1 And Num_affaire IN(SELECT Num_affaire FROM Litiges WHERE(Annee=2007 And Num_section=5))))
UNION
SELECT Nom
FROM Entreprises
WHERE Num_entreprise IN(SELECT Num_defendeur FROM Attaque WHERE (Num_demandeur=1 And Num_affaire IN(SELECT Num_affaire FROM Litiges WHERE(Annee=2007 And Num_section=5))));
Erreur requête sous access
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.