查找一组计算总和的总和

时间:2015-04-05 21:25:57

标签: mysql

我正在开发一个php / mysql数据库。 我有一个名为'actions'的表,其中包括字段hrs,mins,actiondate,invoiceid和staffid。

对于任何特定的行动日期,各种工作人员可以进行任何数量的行动,这些行动将以小时和分钟的形式输入。

我需要做的是生成一个表格,该表格针对每个日期以及特定员工和发票成员,将每个日期的所有小时和分钟相加为小数,将其四舍五入到最近的四分之一并显示结果。我还需要能够将所有这些结果相加并显示总数。

例如,如果在3月1日,具有staffid = 23的人已经对发票121持续,1h2m,23m,10m和20m进行了4次操作,那天的总数将是62 + 23 + 10 + 20 = 115m = 115/60 = 1.92,将四舍五入到2.00。

我可以得到每一天的总数(可能不是很优雅)并使用下面的代码在日期显示

SELECT actions.`actiondate`,     
       (FORMAT((((CEIL((((60*SUM(hrs))+SUM(mins))/60)*4))/4)),2)) AS dayfeeqtr 
FROM   actions 
WHERE  staff.staffid=’23’ 
       AND invoiceid=‘121’ 
GROUP BY actions.`actiondate`

但是,我无法解决的问题是,如何为该发票和该员工添加所有这些舍入结果。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您可以使用子查询:

SELECT sum(dayfeeqtr)
FROM (SELECT a.`actiondate`,     
             FORMAT((((CEIL((((60*SUM(hrs))+SUM(mins))/60)*4))/4)), 2) AS dayfeeqtr 
      FROM actions a
      WHERE s.staffid = '23' AND invoiceid = '121'
      GROUP BY a.`actiondate`
     ) a;

我注意到您的查询不正确 - 例如,有staff的引用,它不在from子句中。但是,你说这是有效的,所以我认为错误是转录问题。