Php 如何根据此表的结果进行汇总/分组
我有一个小时表,它看起来像: 我只想对本周花在结果上的小时数进行汇总,并按创建的人对结果进行分组。我有一个查询,它返回正确的数据,只显示本周的结果: 但是,当我将总和(Php 如何根据此表的结果进行汇总/分组,php,mysql,select,Php,Mysql,Select,我有一个小时表,它看起来像: 我只想对本周花在结果上的小时数进行汇总,并按创建的人对结果进行分组。我有一个查询,它返回正确的数据,只显示本周的结果: 但是,当我将总和(花费的小时数)作为总小时数和按员工分组时,如下面的示例所示,我得到的结果为0 我假设它不起作用,因为我语句的Having部分没有返回单独的日期行,所以它会中断 我觉得我这样做很难。我是否应该尝试对第一个查询的结果运行第二个求和查询,而不是将其全部合并到一个查询中(我希望是干净的)。或者我应该使用子查询筛选出不是本周的日期,然
花费的小时数
)作为总小时数和按员工分组时,如下面的示例所示,我得到的结果为0
我假设它不起作用,因为我语句的Having部分没有返回单独的日期行,所以它会中断
我觉得我这样做很难。我是否应该尝试对第一个查询的结果运行第二个求和查询,而不是将其全部合并到一个查询中(我希望是干净的)。或者我应该使用子查询筛选出不是本周的日期,然后将总数分组,如果是这样,我如何才能做到这一点?我得到了我所期望的: 选择staff.first\u name、staff.last\u name、sum(
hours\u speed
)
从几个小时开始
LEFT JOIN staff ON hours.created_by=staff.staff_id
其中,yearweek(date_输入的,1)=(yearweek(curdate(),1)-1)
按创建人分组尝试按小时分组。按创建人分组,并注释您的声明。这应该确保您的加入是正确的,并查看have是否正在过滤结果。
SELECT staff_id, first_name, last_name, date_entered, `hours_spent` as total_hours FROM hours LEFT JOIN staff ON hours.created_by = staff.staff_id where yearweek(`date_entered`) = yearweek(curdate());
SELECT staff_id, date_entered, first_name, last_name, SUM(`hours_spent`) as total_hours FROM hours LEFT JOIN staff ON hours.created_by = staff.staff_id group by staff_id having yearweek(`date_entered`) = yearweek(curdate());