如何使用SQL MAX(SUM())函数

时间:2014-03-14 15:39:16

标签: mysql

嗨,这是让我疯狂的咨询,比如选择这个咨询的最大值,我做了一个临时表,最大然后解雇他,但quiciera知道如果相同的查询可以删除没有临时表。

我有2张桌子N和ACCRUED PAYROLL D

表I占用工资单工资单201314-201320 和表我需要累计的EMPLOYEEIDNO; cod_tiponomina; cod_nomina和应计员工工资在14天内获得;

很好的帮助是我需要用sum()得到最大的工资计算;

感谢您的帮助。

SELECT MAX((SUM(d.devengado) / (COUNT(d.devengado)*14))*30) salario_30dias 
  FROM devengados d 
  JOIN nominas n 
    ON n.cod_nomina = d.cod_nomina 
 WHERE d.cod_empleado = 564 
   AND d.cod_tiponomina = 1 
   AND d.cod_nomina BETWEEN 201314 AND 201320 
   AND d.devengado > 0 
 GROUP 
    BY YEAR(n.fecha_cierre) 
     , MONTH(n.fecha_cierre);

1 个答案:

答案 0 :(得分:1)

'最大'和' Sum'总是根据Group By条款执行。

您可以嵌套2个选择以获得不同总和的最大值:

SELECT MAX(sum) FROM 
  (SELECT SUM(column) AS sum FROM table GROUP BY crit1) 
GROUP BY sum

但更好的方法是对总和进行排序,然后选择第一个实现与周围MIN/MAX相同的方法(不需要嵌套选择):

SELECT SUM(column) AS sum FROM table GROUP BY crit1 ORDER BY sum DESC LIMIT 0,1

(对于MIN,您需要对ASC进行排序)