您正试图使用相关子查询,但是-您没有将其表之间的任何相关性应用于外部表。它
必须
只返回一行(值),但是-当您放入
group by
子句-它导致返回多行,并出现错误。
这样的事情可能会做(我也
JOIN
ed表上的公共列和let
WHERE
子句以筛选结果行):
SELECT a.clinic_no,
b.clinic_desc_a,
a.doctor_no,
c.staff_native_name,
COUNT (discharge_from_clinic),
(SELECT COUNT (patient_no)
FROM trng.opd_visits_history h
WHERE h.clinic_no = a.clinic_no --> this
AND h.doctor_no = a.doctor_no --> this
AND event_date BETWEEN 20240815 AND 20240822) AS "Total"
FROM trng.opd_visits_history a
JOIN trng.hospital_clinics b
ON a.clinic_no = b.clinic_no
AND a.hospital_no = b.hospital_no
JOIN trng.hospital_staff c
ON a.doctor_no = c.staff_no
AND b.doctor_no = c.staff_no
AND c.hospital_no = a.hospital_no
WHERE event_date BETWEEN 20240815 AND 20240822
AND a.hospital_no = 720022
AND a.discharge_from_clinic = 1
GROUP BY a.clinic_no,
a.doctor_no,
b.clinic_desc_a,
c.staff_native_name