首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql查询支付

Mysql查询支付
EN

Stack Overflow用户
提问于 2013-03-24 21:04:37
回答 1查看 50关注 0票数 0

我有一个名为logs的表,其中包含技术人员按日期为医生所做的工作。它包含字段:ref_doctor_id (doctor), technician_id (technician) and dos (date)

技术人员可能在特定日期为几个医生做工作。对于每个医生,我需要了解该技术人员是否在特定的一天为其他医生工作,如果他做了,我需要知道他在那一天为多少医生工作。这是为了将费用分配给医生。

例如:

我在Doctor 6 (id=6)上工作,技术员每天能拿到100美元。

在5号,他只为6号医生工作,所以6号医生的费用是100美元。

在6号,他为6号和8号医生工作,所以6号医生的费用是50美元。

在7号,他为6号医生、7号医生和8号医生工作,所以6号医生的费用是33.33美元。

在此期间,医生的总费用为183.33美元。

我希望这一点足够清楚,我希望SQL能解决这个问题。

提前谢谢你!

代码语言:javascript
复制
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循环遍历记录集日期,以查看该技术人员在该日期是否有其他医生。这似乎有很长的路要走,但可能是唯一的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2013-03-24 21:32:29

计算子查询中的医生数量,并将结果连接回:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15598808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档