Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur requête sous access

Sujet résolu
    26 août 2010 à 19:03:05

    Bonjour tout le monde ^^

    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 :p (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))));
    
    • Partager sur Facebook
    • Partager sur Twitter

    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.
    • Editeur
    • Markdown