2011-01-18 2 views
4

J'utilise la requête suivante pour essayer d'obtenir le nombre total (somme) de diapositives récupérant le nombre maximum de chaque projet, mais je reçois l'erreur suivante (# 1111 - Utilisation invalide de la fonction de groupe). Voici la requête:# 1111 - Utilisation invalide de la fonction de groupe

SELECT COALESCE(project,'Total') as Project, SUM(MAX(slides)) as Slides 
FROM projects_tbl 
WHERE date BETWEEN '2010-01-01' AND '2010-12-31' 
GROUP BY Project with ROLLUP 

Si je retire la somme(), le cela fonctionne, cependant, je ne suis pas le total précis pour tous les projets/diapositives.

Merci d'avance pour toutes les réponses.

+0

Pourriez-vous s'il vous plaît poster quelques exemples de données et la sortie désirée? – Quassnoi

Répondre

4
SELECT COALESCE(project,'Total') as Project, SUM(maxslides) AS slides 
FROM (
     SELECT project, MAX(slides) as maxslides 
     FROM projects_tbl 
     WHERE date BETWEEN '2010-01-01' AND '2010-12-31' 
     GROUP BY 
       project 
     ) q 
GROUP BY 
     project WITH ROLLUP 
+0

Cela a fonctionné, merci! – azsl1326

2

Vous pouvez essayer avec quelque chose comme:

SELECT sum(prjmax) 
FROM 
(SELECT COALESCE(project,'Total') as Project, MAX(slides) as prjmax 
FROM projects_tbl 
WHERE date BETWEEN '2010-01-01' AND '2010-12-31' 
GROUP BY Project with ROLLUP) 

Vous devez obtenir le maximum pour chaque projet, et après cela, vous pouvez tout résumer.

Questions connexes