我正在开发一个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`
但是,我无法解决的问题是,如何为该发票和该员工添加所有这些舍入结果。
有人可以帮忙吗?
答案 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
子句中。但是,你说这是有效的,所以我认为错误是转录问题。