Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

2 réponses
Avatar
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

2 réponses

Avatar
Michel__D
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 <> 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



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 <> 16 AND A1.DateFabrication > 39814
GROUP BY A1.RefArtFabrication, A3.LibelleArticle, A1.CentreFabrication,
A2.NomCentreFabrication
ORDER BY A1.RefArtFabrication ASC, SUM(A1.QteFabrication) DESC;
Avatar
Thierry.E
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" a écrit dans le message de
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 <> 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



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 <> 16 AND A1.DateFabrication > 39814
GROUP BY A1.RefArtFabrication, A3.LibelleArticle, A1.CentreFabrication,
A2.NomCentreFabrication
ORDER BY A1.RefArtFabrication ASC, SUM(A1.QteFabrication) DESC;