PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Pb requete SQL
Pb requete SQL
Iniciado por cciochir_at_, jun., 17 2005 5:00 PM - 3 respostas
Publicado em junho, 17 2005 - 5:00 PM
Bonjour à tous,

Je souhaite construire une requete via l'assisant requete de WINDEV.
Pour expliquer la situation, j'ai un fichier planning auquel je veux
relier le fichier des chantiers ainsi que le fichier client.

Ma requete SQL ressemble à ca:
SELECT PPLANNING.PPCOMPT AS PPCOMPT,
PPLANNING.PPEVENEM AS PPEVENEM,
PPLANNING.PPNOCLI AS PPNOCLI,
PCHANT.CHCPRO AS CHCPRO,
PCLIENT.CLNCLI AS CLNCLI,
PCLIENT.CLNMFA AS CLNMFA
FROM PPLANNING LEFT OUTER JOIN PCHANT ON PPLANNING.PPEVENEM =
PCHANT.CHCPRO,
PPLANNING LEFT OUTER JOIN PCLIENT ON PPLANNING.PPNOCLI = PCLIENT.CLNCLI

Quand j'essaie de l'éxécuter j'ai un message d'erreur indiquant:
Indicatif de table en double PPLANNING incorrect

Je précise, que si j'enlève la ligne suivante alors ca fonctionne ....
PPLANNING LEFT OUTER JOIN PCLIENT ON PPLANNING.PPNOCLI = PCLIENT.CLNCLI

Help aux spécialistes SQL!

Merci d'avance

--
Bon développement à tous
Christian

cciochir@ _ at _ cmii.fr
Publicado em junho, 17 2005 - 5:53 PM
Avec MaxDB ta requete serait:
SELECT PPLANNING.PPCOMPT AS PPCOMPT,
PPLANNING.PPEVENEM AS PPEVENEM,
PPLANNING.PPNOCLI AS PPNOCLI,
PCHANT.CHCPRO AS CHCPRO,
PCLIENT.CLNCLI AS CLNCLI,
PCLIENT.CLNMFA AS CLNMFA
FROM PPLANNING LEFT OUTER JOIN PCHANT ON PPLANNING.PPEVENEM =
PCHANT.CHCPRO
LEFT OUTER JOIN PCLIENT ON PPLANNING.PPNOCLI = PCLIENT.CLNCLI


Frédéric.
Publicado em junho, 17 2005 - 6:17 PM
Salut Christian, comme Frédéric le mentionne, tu ne dois pas répéter le nom de ta table PPLANNING lors de ton 2e LEFT OUTER JOIN.

En SQL, lorsque tu met une virgule après la définition de ton JOIN, c'est comme si tu insérais une autre table dans ta requête pour l'interpréteur.

Tu dois donc faire tes JOIN comme ceci :

SELECT *
FROM nomTable1
LEFT OUTER JOIN nomTable2
ON champstbl1 = champstbl2
LEFT OUTER JOIN nomTable3
ON champstbl1 = champstbl3

Voilà !

Luc St-Yves
Publicado em julho, 19 2005 - 6:37 PM
Luc St-Yves avait prétendu :
Salut Christian, comme Frédéric le mentionne, tu ne dois pas répéter le
nom de ta table PPLANNING lors de ton 2e LEFT OUTER JOIN.

En SQL, lorsque tu met une virgule après la définition de ton JOIN, c'est
comme si tu insérais une autre table dans ta requête pour l'interpréteur.

Tu dois donc faire tes JOIN comme ceci :

SELECT *
FROM nomTable1
LEFT OUTER JOIN nomTable2
ON champstbl1 = champstbl2
LEFT OUTER JOIN nomTable3
ON champstbl1 = champstbl3

Voilà !

Luc St-Yves


Je vous remercie à tous les deux, mais dans ce cas pourquoi WD remet le
nom du fichier une deuxième fois? En fait ce que je vous ai affiché
c'était le code SQL généré en automatique par WD!!!

Ca signifie que je dois me faire ma requete à la main....ouf ouf ouf :)

Merci encore, je vais essayer de ce pas

A+


--
Bon développement à tous
Christian

cciochir@ _ at _ cmii.fr