2016-07-07 18 views
0

我有一張由患者進行的預約表。我想在本月接收那些來我們醫療機構的新病人,但他們以前從未到過這裏,所以我們可以發送一封歡迎信給新病人。 我不知道如何選擇。我想使用NOT IN,但不知道如何保留當前月份的數據,並重新檢查過去的約會。在該表中,我想只有patient_id 004SQL僅適用於當前的新患者

Patient_ID  Appt_Date time 
001    2016-01-01 
001    2015-05-09 
002    2016-06-01 
003    2016-07-01 
003    2014-09-03 
004    2016-07-02 

回答

3

我會用聚集了這一點:

select patient_id 
from t 
group by patient_id 
having min(appt_date_time) > cast(dateadd(day, - day(getdate()), getdate()) as date) 
0

我會使用GROUP BY和MIN()與月()和Year()爲此的功能。

select patient_id 
from patient_appt -- or whatever your table name is 
group by patient_id -- groups all visits together for each patient 
having year(min(appt_date_time)) = year(getdate()) -- checks earliest visit year is current year 
    and month(min(appt_date_time)) = month(getdate()) -- checks earliest visit month is current month 

這產生了第一次訪問與當前月份和年份匹配的患者。

+0

你需要扭轉你的分鐘(年(&分鐘(月至年(分鐘(appt ..和月份(分鐘(appt。否則,你可以得到一年的預約日期和一個月從另一 – Matt

+0

良好的捕獲,謝謝!(固定) –

相關問題