Pb de group by et/ou de jointure

Résolu/Fermé
zozizon Messages postés 674 Date d'inscription samedi 30 avril 2005 Statut Membre Dernière intervention 6 juin 2017 - 14 août 2007 à 10:30
zozizon Messages postés 674 Date d'inscription samedi 30 avril 2005 Statut Membre Dernière intervention 6 juin 2017 - 14 août 2007 à 16:29
Bonjours à tous.
Je créé des pages intranet dans une entreprise pour améliorer le suivi des affaires. Dans cette page je cherche à calculer le temps de fabrication d'une machine de type "AM" pour l'affaire "AFF_ARC"'
J'ai un petit problème que je n'arrive pas à résoudre et qui me fait perdre énormement de temps.
Je cherche à sommer les temps de fabrication "GOF_TPROMO". Pour arriver à cette colonne je dois passer par quatre jointures puis quelques conditions.
Voila ma commande sql
SELECT AFF_ARC,AFF_DAT_DELAI,AFF_DAT_DELAIC,NVL(AFF_DAT_DELAIC,AFF_DAT_DELAI) AFF_DAT_DEL,AFF_CLI, SUM(GOF_TPROMO) GOF_TPROMO_TOT

FROM AFF,NAFF,PNAFF,GOF,ORF 

AFF INNER join NAFF on AFF.AFF_ARC=NAFF.NAFF_ARC,
NAFF INNER join PNAFF on NAFF.NAFF_NUM=PNAFF.PNAFF_NUM,
PNAFF INNER join ORF on PNAFF.PNAFF_NUM=ORF.ORF_NUM_ORI,
ORF INNER join GOF on ORF.ORF_NOF=GOF.GOF_NOF

GROUP BY AFF_ARC

HAVING PNAFF_TYAPP='AM' 
and AFF_ARC='44501'


Et voila le petit message que me retourne le serveur

Microsoft OLE DB Provider for ODBC Drivers erreur '80040e14'

[Oracle][ODBC Oracle Driver][Oracle OCI]ORA-00933: SQL command not properly ended.


Voila. J'ai testé en changent la jointure, en ajoutant des égalité dans le having par exmple mais rien a faire.

Pour expliquer plus clairement le Pb, AFF_ARC est un numéro d'affaire et les tables NAFF, PNAFF,ORF sont les liens pour arriver à la table GOF contenant les temps des ordres de fabircations.

Merci de votre aide.

1 réponse

zozizon Messages postés 674 Date d'inscription samedi 30 avril 2005 Statut Membre Dernière intervention 6 juin 2017 41
14 août 2007 à 16:29
RE.
Certaines valeurs ne peuvent plus être selectionées lorsque que l'on regroupe les lignes.LOGIQUE!!!
Pour les dates par exemple j'utilise la fonction Max afin retourner une date apparaissant sur plusieur ligne ainsi dessuite.
Voila ce qui arrive quand on ne fait pas attention a ce que l'on fait!!!
1