当其他列的其他结果相同时,如何在sql中求和结果?

时间:2015-09-14 22:42:11

标签: mysql sql

嗨,对不起,如果我不以正确的方式提出问题

我有这个问题:

SELECT
t4.tar_nombre as nombre_tarea,
t2.rdi_fechacti as fecha_actividad,
t3.rea_hrstarea as horas_trabajadas

FROM
    act_usuario t1
INNER JOIN
    act_regisdiario t2
ON
    (t2.usu_id = t1.usu_id)
INNER JOIN
    act_registtarea t3
ON
    (t3.rdi_id = t2.rdi_id)
INNER JOIN
    act_tarea t4
ON
    (t4.tar_id = t3.tar_id)
WHERE
    t4.usu_id = 4 
GROUP BY

    t3.rea_id

ORDER BY
    t2.rdi_fechacti

查询打印出来:

enter image description here

所以,我需要在“fecha_Actividad”中存在相同的“nombre_actividad”,那只会向我显示一个“fecha_actividad”和“horas_trabajadas”的总和。

例如,查询显示:

enter image description here

但我需要这个(因为同一个“nombre_tarea”在同一天):

enter image description here

参考:

enter image description here

对不起我的英语。

1 个答案:

答案 0 :(得分:1)

您可以在分组后使用SUM(field)语法。

SELECT
    t4.tar_nombre as nombre_tarea,
    t2.rdi_fechacti as fecha_actividad,
    t3.rea_hrstarea as horas_trabajadas,
    SUM(t3.rea_hrstarea)
FROM
    act_usuario t1
INNER JOIN
    act_regisdiario t2
ON
    (t2.usu_id = t1.usu_id)
INNER JOIN
    act_registtarea t3
ON
(t3.rdi_id = t2.rdi_id)
INNER JOIN
    act_tarea t4
ON
    (t4.tar_id = t3.tar_id)
WHERE
    t4.usu_id = 4 
GROUP BY
    t4.tar_nombre
ORDER BY
    t2.rdi_fechacti

您还可以在分组结果上使用其他功能。你可以找到它们here