Mysql支付查询
我有一个名为logs的表,它包含技师按日期为医生做的工作。 它包含以下字段:Mysql支付查询,mysql,Mysql,我有一个名为logs的表,它包含技师按日期为医生做的工作。 它包含以下字段:参考医生id(医生)、技师id(技师)和dos(日期) 技师可以在特定日期为几名医生工作。 对于每一位医生,我需要了解技术人员是否在某一天为其他医生做过工作,如果他做过,我需要知道他在那一天为多少医生做过工作。这是将费用分配给医生 例如: 我正在从事医生6(id=6)的工作,技师每天可以拿到100美元。 5日,他只为6号医生工作,因此6号医生的费用为100美元。 6日,他为6号和8号医生工作,因此6号医生的费用为50美元
参考医生id(医生)、技师id(技师)和dos(日期)
技师可以在特定日期为几名医生工作。 对于每一位医生,我需要了解技术人员是否在某一天为其他医生做过工作,如果他做过,我需要知道他在那一天为多少医生做过工作。这是将费用分配给医生 例如:
我正在从事医生6(id=6)的工作,技师每天可以拿到100美元。
5日,他只为6号医生工作,因此6号医生的费用为100美元。
6日,他为6号和8号医生工作,因此6号医生的费用为50美元。
7日,他为6号、7号和8号医生工作,因此6号医生的费用为33.33美元。
这一期间医生的总费用为183.33美元 我希望这足够清楚,我希望SQL能够解决这个问题。
提前谢谢你
2013-03-05 6 16
2013-03-06 6 16
2013-03-06 8 16
2013-03-07 6 16
2013-03-07 8 16
2013-03-07 10 16
我的选择是选择包含医生ID和技师ID的记录,然后使用PHP循环记录集日期,查看该技师是否为该日期工作过其他医生。这似乎还有很长的路要走,但可能是唯一的解决方案。计算子查询中的医生数量,并将结果合并回:
select dos, technician_id, dt.numdocs
from t left outer join
(select dos, technician_id, count(distinct ref_doctor_id) as numdocs
from t
group by dos, technician_id
) dt
on dt.dos = t.dos and dt.technician_id = t.technician_id
where ref_doctor_id = 6
group by dos, technician_id
你能以表格的形式给出所需结果的样本记录吗?漂亮的戈登!非常感谢@user2146684当答案解决您的问题时,请单击答案左边的复选框接受答案。