假设你有四个表,clinic诊所表,有字段id,name;employeey雇员信息表,有字段id,name,type,其中type=1表示医生,2表示收费员,clinic_employee表表示诊所和雇员关系,有id,clinc_id,employee_id;charge收费表,有字段is,clinic_id诊所id,employee_id雇员id,amount金额,create_time 收费时间,格式为年月日 时分秒,写如下sql,按天给出所有收费员金额
时间: 2024-03-18 13:39:10 浏览: 124
在SQL中,你为达此目的将需要进行一个四表连接的查询。
请确认一下所提供的表名是否正确,因为在这个问题描述中,clinic表和clinic_employee表都被称为了clinic诊所表。假设这里clinic指的是诊所表,clinic_employee指的是诊所和雇员关系表,那么可以使用如下SQL查询按天给出所有收费员金额:
```
SELECT
ce.employee_id,
DATE_FORMAT(c.create_time, '%Y-%m-%d') AS day,
SUM(c.amount) AS total_amount
FROM clinic_employee ce
JOIN charge c ON ce.clinic_id = c.clinic_id AND ce.employee_id = c.employee_id
JOIN employeey e ON ce.employee_id = e.id
WHERE e.type = 2
GROUP BY ce.employee_id, day
```
这个SQL语句中,首先通过clinic_employee表和charge表的关联,找到每个收费员在每个诊所的收费记录。然后通过employeey表中的type字段来筛选出收费员,使用DATE_FORMAT函数将create_time字段转换成天的格式,最后按照employee_id和day分组,计算每个收费员每天的总金额。
阅读全文