[Requête] Problème de syntaxe jointure 3 tables

Le
Thierry.E
Bonjour,

Je rencontre apparemment un problème de syntaxe lors de la jointure de 3
tables

Voici ma requête :
SELECT TRIM(A1.RefArtFabrication) As Ref, TRIM(A3.LibelleArticle),
A1.CentreFabrication As Centre, TRIM(A2.NomCentreFabrication) As NomCentre,
SUM(A1.QteFabrication) As Qte FROM Fabrications As A1 INNER JOIN
CentresFabrication As A2 ON A1.CentreFabrication = A2.CentreFabrication
INNER JOIN Articles As A3 ON A1.RefArtFabrication = A3.RefArticle WHERE
A1.CentreFabrication <> 16 AND A1.DateFabrication > 39814 GROUP BY
A1.RefArtFabrication, A1.CentreFabrication, A2.NomCentreFabrication ORDER BY
A1.RefArtFabrication ASC, SUM(A1.QteFabrication) DESC;

Et voici le message d'erreur :
Erreur de syntaxe (opérateur absent) dans l'expression 'A1.CentreFabrication
= A2.CentreFabrication INNER JOIN Articles As A3 ON A1.RefArtFabrication =
A3.RefArticle'.

Je suppose que j'ai du mal écrire les paramètres de jointure, mais ne vois
pas mon erreur.

Help :)
Thierry
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #20121131
Bonjour,

Thierry.E a écrit :
Bonjour,

Je rencontre apparemment un problème de syntaxe lors de la jointure de 3
tables...

Voici ma requête :
SELECT TRIM(A1.RefArtFabrication) As Ref, TRIM(A3.LibelleArticle),
A1.CentreFabrication As Centre, TRIM(A2.NomCentreFabrication) As NomCentre,
SUM(A1.QteFabrication) As Qte FROM Fabrications As A1 INNER JOIN
CentresFabrication As A2 ON A1.CentreFabrication = A2.CentreFabrication
INNER JOIN Articles As A3 ON A1.RefArtFabrication = A3.RefArticle WHERE
A1.CentreFabrication A1.RefArtFabrication, A1.CentreFabrication, A2.NomCentreFabrication ORDER BY
A1.RefArtFabrication ASC, SUM(A1.QteFabrication) DESC;

Et voici le message d'erreur :
Erreur de syntaxe (opérateur absent) dans l'expression 'A1.CentreFabrication
= A2.CentreFabrication INNER JOIN Articles As A3 ON A1.RefArtFabrication =
A3.RefArticle'.

Je suppose que j'ai du mal écrire les paramètres de jointure, mais ne vois
pas mon erreur.

Help :)
Thierry



Moi je commencerais par faire des mise à jour pour ne pas avoir à utiliser des
TRIM ensuite ceci devrait fonctionner :

SELECT A1.RefArtFabrication As Ref, A3.LibelleArticle,
A1.CentreFabrication As Centre, A2.NomCentreFabrication As NomCentre,
SUM(A1.QteFabrication) As Qte
FROM (Fabrications AS A1 INNER JOIN CentresFabrication As A2
ON A1.CentreFabrication = A2.CentreFabrication)
INNER JOIN Articles As A3 ON A1.RefArtFabrication = A3.RefArticle
WHERE A1.CentreFabrication GROUP BY A1.RefArtFabrication, A3.LibelleArticle, A1.CentreFabrication,
A2.NomCentreFabrication
ORDER BY A1.RefArtFabrication ASC, SUM(A1.QteFabrication) DESC;
Thierry.E
Le #20141761
Bonjour Michel,

Merci beaucoup pour les parenthèses, effectivement cela fonctionne !
Concernant les TRIM, malheureusement je ne peux y toucher, les données
traitées sont directement issues de la base de donnée de l'ERP et il vaut
mieux ne pas y toucher ;)

Thierry

"Michel__D" news: egJ%
Bonjour,

Thierry.E a écrit :
Bonjour,

Je rencontre apparemment un problème de syntaxe lors de la jointure de 3
tables...

Voici ma requête :
SELECT TRIM(A1.RefArtFabrication) As Ref, TRIM(A3.LibelleArticle),
A1.CentreFabrication As Centre, TRIM(A2.NomCentreFabrication) As
NomCentre, SUM(A1.QteFabrication) As Qte FROM Fabrications As A1 INNER
JOIN CentresFabrication As A2 ON A1.CentreFabrication =
A2.CentreFabrication INNER JOIN Articles As A3 ON A1.RefArtFabrication =
A3.RefArticle WHERE A1.CentreFabrication 39814 GROUP BY A1.RefArtFabrication, A1.CentreFabrication,
A2.NomCentreFabrication ORDER BY A1.RefArtFabrication ASC,
SUM(A1.QteFabrication) DESC;

Et voici le message d'erreur :
Erreur de syntaxe (opérateur absent) dans l'expression
'A1.CentreFabrication = A2.CentreFabrication INNER JOIN Articles As A3 ON
A1.RefArtFabrication = A3.RefArticle'.

Je suppose que j'ai du mal écrire les paramètres de jointure, mais ne
vois pas mon erreur.

Help :)
Thierry



Moi je commencerais par faire des mise à jour pour ne pas avoir à utiliser
des
TRIM ensuite ceci devrait fonctionner :

SELECT A1.RefArtFabrication As Ref, A3.LibelleArticle,
A1.CentreFabrication As Centre, A2.NomCentreFabrication As NomCentre,
SUM(A1.QteFabrication) As Qte
FROM (Fabrications AS A1 INNER JOIN CentresFabrication As A2
ON A1.CentreFabrication = A2.CentreFabrication)
INNER JOIN Articles As A3 ON A1.RefArtFabrication = A3.RefArticle
WHERE A1.CentreFabrication GROUP BY A1.RefArtFabrication, A3.LibelleArticle, A1.CentreFabrication,
A2.NomCentreFabrication
ORDER BY A1.RefArtFabrication ASC, SUM(A1.QteFabrication) DESC;


Publicité
Poster une réponse
Anonyme