我的数据库admission
id pa_name health_no date_adm ---------- ---------- ---------- ---------- ---------- 1 John 1500 20/01/2010 2 Jorge 1800 28/01/2011 3 Sara 1000 09/04/2012 4 John 1500 11/01/2013 5 John 1500 15/01/2015 6 Sara 1000 18/01/2016
我尝试过此查询,但结果错误。
SELECT * FROM admission
WHERE admission.date_adm IN (
SELECT DISTINCT date_adm FROM admission
WHERE date_adm NOT BETWEEN
timestamp(DATE_SUB(NOW(), INTERVAL 5 year))
AND
timestamp(NOW())
)
我的问题是,如果患者在过去5年内被录取,我需要一个查询来为过去5年未被录取的患者选择health_no records
,不包括任何health_no
。
结果应该是这样的:
pa_name health_no -------- ---------- Sara 1000 ----------------------
提前致谢!
答案 0 :(得分:0)
假设您的date_adm是日期数据类型,您可以检查healt_no,而不是过去5年中的那些
SELECT *
from admission WHERE admission.health_no NOT IN (
SELECT DISTINCT health_no
from admission
WHERE date_adm BETWEEN DATE_SUB(NOW(), INTERVAL 5 year) AND NOW()
)