gpt4 book ai didi

mysql - SQL 查询帮助(可能使用 JOIN?)

转载 作者:行者123 更新时间:2023-11-30 22:12:50 28 4
gpt4 key购买 nike

表 A [PATIENT] 包含列 [PATID]、[FIRSTVISITDATE]

表 B [APPT] 包含列 [APPTID]、[PATID]、[CREATEDATE]

表 C [NOTE] 包含列 [NOTEID]、[NOTETEXT]

表 D [PROCS] 包含列 [PROCID]、[PATID]

表 E [CHARGE] 包含列 [CHARGEID]、[AMOUNT]

我需要通过 PATID 为所有 NOTE.NOTETEXT 包含“文本”的患者求和 CHARGE(AMOUNT),并且包含“文本”的患者的 APPT 之一具有 APPT.CREATEDATE = PATIENT.FIRSTVISITDATE

简单地说,如果患者在他们的笔记中有一个带有“文本”的约会,并且带有该“文本”的约会是他们第一次来办公室,我需要对他们的费用进行总结

其他要点:

CHARGE.CHARGEID = PROC.PROCID

NOTE.NOTEID = APPT.APPTID

由于我对 SQL 的了解有限,我能够对所有患者进行总结,无论“文本”是否包含在他们的第一次约会笔记中,我使用了:

select (SUM(AMOUNT)) as 'Cash Payments' from CHARGE where CHARGEID in
(select PROCID from PROC where PATID in
(select PATID from APPT where APPTID in
(select NOTEID from NOTE where NOTETEXT like '%text%')))

最佳答案

您可以使用 GROUP BY 子句按患者对 AMOUNT 进行分组。您可以使用连接表的内部查询将您的患者过滤为注释中具有 textFIRSTVISITDATE = CREATEDATE 的患者条件。

我没有测试以下查询,但它应该可以满足您的要求。

SELECT pa.PATIENT, SUM(c.AMOUNT) AS 'Cash Payments'
FROM PATIENT pa
INNER JOIN PROCS pr
ON pa.PATID = pr.PATID
INNER JOIN CHARGE c
ON pr.PROCID = c.CHARGEID
WHERE pa.PATIENT IN (
SELECT pa.PATIENT
FROM PATIENT pa
INNER JOIN APPT a
ON pa.PATID = a.PATID
AND pa.FIRSTVISITDATE = a.CREATEDATE
INNER JOIN NOTE n
ON a.APPTID = n.NOTEID
WHERE n.NOTETEXT LIKE '%text%'
)
GROUP BY pa.PATIENT;

关于mysql - SQL 查询帮助(可能使用 JOIN?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39495986/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com