SQL Access Erreur de Requete

SQL Access Erreur de Requete - SQL/NoSQL - Programmation

Marsh Posté le 17-08-2004 à 11:16:51    

Bonjour,
 
j'ai une table avec deux champs : Date et Nombre et je veux faire une requete qui me renvoie tous les enregistrements avec en plus un champ Cumul qui somme les nombres jusqu'a la date de l'enregistrement actif, comme un cumul de vente par exemple.
 
Voici ma requete :
 
SELECT T.Date, U.Date, T.Nombre, U.Nombre, ABS(NOT(T.Date <= U.Date)) AS MonTest, (U.Nombre*MonTest) AS MonProduit, Sum(U.Nombre*MonProduit) AS MaSomme
FROM MaTable AS T, MaTable AS U
GROUP BY T.Date
ORDER BY T.Date, U.Date;
 
Si j'enleve le groupement :
 
SELECT T.Date, U.Date, T.Nombre, U.Nombre, ABS(NOT(T.Date <= U.Date)) AS MonTest, (U.Nombre*MonTest) AS MonProduit, 1 AS MaSomme
FROM MaTable AS T, MaTable AS U
ORDER BY T.Date, U.Date;
 
elle fonctionne correctement, sinon j'ai une erreur :
"You tried to execute a query that doesn't include the specified expression as part of an aggregate function or grouping."
que je ne comprends pas (err 3122)
 
Une idee du probleme ??
 
Merci

Reply

Marsh Posté le 17-08-2004 à 11:16:51   

Reply

Marsh Posté le 17-08-2004 à 12:10:50    

1)
=> Manquait ça dans le GROUP BY, tout ce qui n'est pas  
regroupé (sum,max,min,average ...) doit figurer  
dans le group by
SELECT T.Date, U.Date, T.Nombre, U.Nombre, ABS(NOT(T.Date <= U.Date)) AS MonTest, (U.Nombre*MonTest) AS MonProduit, Sum(U.Nombre*MonProduit) AS MaSomme  
FROM MaTable AS T, MaTable AS U  
GROUP BY T.Date, U.Date, T.Nombre, U.Nombre, ABS(NOT(T.Date <= U.Date)) , (U.Nombre*MonTest)  
ORDER BY T.Date, U.Date;  
2)
Ya pas de jointure entre MaTable AS T et MaTable AS U  
donc tu vas croiser tes lignes ...
autrement dit si tu as 15 Enr dans Matable, tu vas
travailler / regrouper  sur 15 * 15 Enr, c ça que tu voulais ?

Reply

Marsh Posté le 17-08-2004 à 15:27:10    

merci !
 
ca marche :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed