Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql支付查询_Mysql - Fatal编程技术网

Mysql支付查询

Mysql支付查询,mysql,Mysql,我有一个名为logs的表,它包含技师按日期为医生做的工作。 它包含以下字段:参考医生id(医生)、技师id(技师)和dos(日期) 技师可以在特定日期为几名医生工作。 对于每一位医生,我需要了解技术人员是否在某一天为其他医生做过工作,如果他做过,我需要知道他在那一天为多少医生做过工作。这是将费用分配给医生 例如: 我正在从事医生6(id=6)的工作,技师每天可以拿到100美元。 5日,他只为6号医生工作,因此6号医生的费用为100美元。 6日,他为6号和8号医生工作,因此6号医生的费用为50美元

我有一个名为logs的表,它包含技师按日期为医生做的工作。 它包含以下字段:
参考医生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当答案解决您的问题时,请单击答案左边的复选框接受答案。