Fusion de 2 requêtes SQL [ACCESS] - SQL/NoSQL - Programmation
Marsh Posté le 07-08-2013 à 12:28:58
Bonjour !
Logiquement, la syntaxe en sql est
SELECT XXX from TTT where AAA in (select xxx from ttt)
Bonne continuation !
Marsh Posté le 07-08-2013 à 14:13:51
Je suis d'accord, le mieux est de mettre un IN à la place du = avant la sous-requête.
Marsh Posté le 07-08-2013 à 14:13:56
Merci beaucoup
pour m'avoir remis sur le droit chemin.
SELECT PA.IdA, PA.NomA, PA.PrenomA, First(PB.IdB), First(PB.NomB)
FROM PersonnesA AS PA LEFT JOIN PersonnesB AS PB ON PA.IdA= PB.IdA
GROUP BY PA.IdA, PA.NomA, PA.PrenomA
Je ne sais pas si j'ai le droit,
mais ce tuto m'a permis de m'en sortir : http://cerig.efpg.inpg.fr/tutoriel [...] chap15.htm
a suffit pour répondre exactement à ma question.
Bonne journée !
Marsh Posté le 07-08-2013 à 14:26:24
First n'est pas une instruction qu'on trouve sur tous les sgbd L'autre requête avait le mérite d'être portable sur tout sgbd supportant les sous-requêtes...
Marsh Posté le 07-08-2013 à 11:16:41
Bonjour la communauté Hardware.fr,
je me penche depuis plusieurs jours sur des vieilles bases Access que je dois réactualiser.
Et je bloque sur une requête SQL que je souhaite insérer dans Access :
Select IdA, NomA, PrenomA, NomB, PrenomB
FROM PersonnesA PA LEFT JOIN PersonnesB PB ON PB.IdA = (
SELECT TOP 1 PB2.IdA
FROM PersonnesB PB2
WHERE PA.IdA = PB2.IdA);
Cela sort une erreur de syntaxe
car apparemment Access ne supporte pas le fait d'écrire : ... ON PB.IdA = ( SELECT ...)
Connaissez-vous une équivalence syntaxique sur Access pour obtenir le même résultat ?
Merci pour votre aide.
-----
Edit :
Pour plus d'informations :
la structure des mes tables ressemblent à :
PersonneA
PersonneB
Et je souhaite donc avori :
Mon objectif est de ne pas avoir de doublons sur les IdA dans mon résultat.
Quitte à perdre mes autres associations PersonnesB (ça ne pose pas de problème)
Message édité par bibin le 07-08-2013 à 12:34:43