SQL server使用一句 SQL 语句实现:查询今年3月各科室挂号的汇总记录(需要显示科室代码,科室名称,挂号数),按挂号数从大到小排序
时间: 2024-09-24 10:04:13 浏览: 41
你可以使用以下SQL语句来实现这个需求:
```sql
SELECT sc.code AS 科室代码,
sc.name AS 科室名称,
COUNT(hh.hospital_admission_id) AS 挂号数
FROM hospital_admissions hh
JOIN patient_departments pd ON hh.department_id = pd.department_id
JOIN departments sc ON pd.department_id = sc.department_id
WHERE YEAR(hh.admission_date) = YEAR(GETDATE()) AND MONTH(hh.admission_date) = 3
GROUP BY sc.code, sc.name
ORDER BY 挂号数 DESC;
```
解释一下这句SQL:
1. `SELECT`: 选择要返回的列,包括科室代码、科室名称和挂号数。
2. `FROM`: 显示数据来自三个关联表:`hospital_admissions` (挂号信息), `patient_departments` (患者与科室的关系) 和 `departments` (科室信息)。
3. `JOIN`: 使用 `JOIN` 来连接这些表,基于它们之间的关联字段。
4. `WHERE`: 过滤条件,只选取今年三月份的数据。
5. `GROUP BY`: 按科室代码和名称对结果进行分组,以便计算每个科室的挂号总数。
6. `COUNT(hh.hospital_admission_id)`: 计算每个科室的挂号次数。
7. `ORDER BY`: 结果按照挂号数降序排列。
阅读全文