【发布时间】:2014-10-18 10:16:37
【问题描述】:
我的患者表有患者编号、患者姓名 和有 patientnum、insurancecode 的 insurance_cover 表
我需要显示有保险和无保险的患者,患者编号和保险总数, 如果不使用 join,我将如何做到这一点?
SELECT 'WITH INSURANCE' AS '',PATIENTNUM, PATIENTSURNAME
from PATIENT where PATIENTNUM
IN(select PATIENTNUM from INSURANCE_COVER)
UNION
SELECT 'WITHOUT INSURANCE' AS '',PATIENTNUM, PATIENTSURNAME
from PATIENT where PATIENTNUM
NOT IN( select PATIENTNUM from INSURANCE_COVER)
此代码显示有保险和无保险的数据。 但是我不知道如何计算有保险的患者的保险。
我使用 NOT IN 对吗? 你能帮帮我吗?
【问题讨论】:
-
您是否需要有关有/没有保险的患者人数的汇总信息?
-
是的..我需要它
-
您应该添加另一个
UNION,并在SELECT后面包含COUNT()并使其看起来像:WITH INSURANCE AS ''、TOTAL AS PATIENTNUM、COUNT(...) AS PATIENTSURNAME -
我应该有 3 个 UNION 吗?
-
一种方法是使用 UNION,这样您就可以在查询生成的一个表中获得详细和汇总的结果。您还可以添加一个包含 ID 的“假”列,例如 1、2、3、4,然后按它排序,以按所需顺序获取您的
SELECT输出。