有两个表tbl_hk和tbl_hk_work:
-
tbl_hk:hk_id(pk(,hk_name
-
tbl_hk_work:hk_work_id,hk_id(fk(,hk_work_date,hk_wwork_1bed,hk_wWork_2bed,hk_work_time
现在的问题是,我想从用户提供的日期起获取所有管家的姓名、1床、2床和总工作时间的总和
现在我有一个查询,它运行得很好,但一次只获取一个管家数据。
select t2.hk_name, sum(hk_work_1bed), sum(hk_work_2bed), sum(hk_work_time_decimal)
from tbl_hk_work t1 inner join
tbl_hk t2
on t2.hk_id = t1.hk_id
where hk_work_date between '2019-10-01' and '2019-10-30' and t2.hk_id='1'
group by t2.hk_name"
这是我现在得到的数据:
hk_name sum(hk_work_1bed) sum(hk_work_2bed) sum(hk_work_time_decimal)
Veronica 12 25 28.86
这就是我所期望的数据:
hk_name sum(hk_work_1bed) sum(hk_work_2bed) sum(hk_work_time_decimal)
Veronica 12 25 28.86
Carmen 10 16 27.31
Sofia 08 11 20.46
Amanda 05 09 17.19
我认为您只需要删除where
子句中的额外筛选器:
select t2.hk_name, sum(hk_work_1bed), sum(hk_work_2bed), sum(hk_work_time_decimal)
from tbl_hk_work t1 inner join
tbl_hk t2
on t2.hk_id = t1.hk_id
where hk_work_date between '2019-10-01' and '2019-10-30'
group by t2.hk_name;
也就是说,删除t2.hk_id = '1'
。
我认为唯一的问题是where子句中的"and t2.hk_id='1'"。