我有两个简单的表格:
HospitalEpisode:
|ID|DateAdmit|DateDischarge|
和
Unit Episode:
|ID|HospitalEpisodeID|DateAdmit|DateDischarge|
一个医院剧集可以有多个单元剧集。
我需要生成所有患有两次或更多单位剧集的患者的报告。这就是我开始的方式
SELECT * from HospitalEpisode
INNER JOIN UnitEpisode
ON HospitalEpisode.ID=UnitEpisode.HospitalEpisodeID
GROUP BY HospitalEpisode.ID
这当然不计算一组内的单位剧集,不会过滤那些UnitEpisodes为两个或更多的剧集,并且不允许我在医院剧集中逐步完成每个单元剧集以提取相关数据。即使我可以获得具有两个或更多UnitEpisodes的HospitalEpisodes列表,我也可以运行第二个查询来提取报告的特定数据。任何帮助表示赞赏!
答案 0 :(得分:2)
使用HAVING
条款来获取包含2个或更多单位剧集的所有医院剧集。
SELECT UE.HospitalEpisodeID from HospitalEpisode HE
INNER JOIN UnitEpisode UE
ON HE.ID=UE.HospitalEpisodeID
GROUP BY UE.HospitalEpisodeID
HAVING COUNT(*) >=2
如果您希望单元集详细信息符合上述条件,则需要在子查询
中选择上面运行SELECT * FROM
(
SELECT UE.HospitalEpisodeID from HospitalEpisode HE
INNER JOIN UnitEpisode UE
ON HE.ID=UE.HospitalEpisodeID
GROUP BY UE.HospitalEpisodeID
HAVING COUNT(*) >=2
)T
JOIN UnitEpisode UE
on T.HospitalEpisodeID = UE.HospitalEpisodeID
答案 1 :(得分:-2)
试试这个:
SELECT * from HospitalEpisode
LEFT JOIN UnitEpisode
ON HospitalEpisode.ID=UnitEpisode.HospitalEpisodeID
GROUP BY HospitalEpisode.ID