Prbleme requete SQL contenant des sommes

eldrad95 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
eldrad95 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un soucis avec la rédaction d'une requête SQL (je débute) contenant plusieurs sommes, voici en gros ma requête :

SELECT T_LIGNESCDES.NUMCDE, T_LIGNESCDES.PRIXU, T_LIGNESCDES.NOLIG, summ(T_LIGNESCDES.PXTOTLIG) As pxttrefart, T_RELIQUATS.NUMCLIENT, T_RELIQUATS.REFARTICLE, T_RELIQUATS.TAILLE, SUM(T_RELIQUATS.QTE) As qtettal, T_RELIQUATS.REFCLIENT, T_ENTETECDE.DELAICLIENT, T_ENTETECDE.NUMCDECLIENT, T_ARTICLES.DESIGNATION FROM T_RELIQUATS INNER JOIN T_LIGNESCDES ON ( T_RELIQUATS.NUMCDE = T_LIGNESCDES.NUMCDE) INNER JOIN T_ENTETECDE ON ( T_RELIQUATS.NUMCDE = T_ENTETECDE.NUMCDE) INNER JOIN T_ARTICLES ON (T_RELIQUATS.REFARTICLE = T_ARTICLES.REFARTICLE) GROUP BY T_RELIQUATS.REFARTICLE

j'obtiens en erreur :

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).

j'en déduit que je me plante dans ma requête, mais je ne vois pas où. :(.

2 réponses

othanga
 
bonjour

l'utilisation du group by implique de citer dans cette clause toutes les expressions non récapitulatives.
en français, ça veut dire que tout ce qui est dans ton select et qui n'est pas sum, avg, min, max, count DOIT figurer dans le group by
0
eldrad95 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour ta réponse,

j'ai fait comme tu m'as dit et j'ai donc mis ceci en requete

SELECT T_LIGNESCDES.NUMCDE, T_LIGNESCDES.PRIXU, T_LIGNESCDES.NOLIG, sum(T_LIGNESCDES.PXTOTLIG)
As pxttrefart, T_RELIQUATS.NUMCLIENT, T_RELIQUATS.REFARTICLE, T_RELIQUATS.TAILLE, SUM(T_RELIQUATS.QTE)
As qtettal, T_RELIQUATS.REFCLIENT, T_ENTETECDE.DELAICLIENT, T_ENTETECDE.NUMCDECLIENT, T_ARTICLES.DESIGNATION
FROM T_RELIQUATS INNER JOIN T_LIGNESCDES ON ( T_RELIQUATS.NUMCDE = T_LIGNESCDES.NUMCDE) INNER JOIN T_ENTETECDE
ON ( T_RELIQUATS.NUMCDE = T_ENTETECDE.NUMCDE) INNER JOIN T_ARTICLES ON (T_RELIQUATS.REFARTICLE = T_ARTICLES.REFARTICLE)
GROUP BY T_RELIQUATS.REFARTICLE, T_LIGNESCDES.NUMCDE, T_LIGNESCDES.PRIXU,
T_LIGNESCDES.NOLIG, T_RELIQUATS.REFARTICLE, T_RELIQUATS.TAILLE,
T_RELIQUATS.REFCLIENT, T_ENTETECDE.DELAICLIENT, T_ENTETECDE.NUMCDECLIENT, T_ARTICLES.DESIGNATION

mais je retombe hélas sur la même erreur :(.
0