2016-07-07 4 views
0

私は患者の予定表を持っています。今月、私たちの医療施設に来た新しい患者さんをフェッチしたいと思いますが、彼らは以前にはなかったので、新しい患者さんに歓迎手紙を送ることができます。 選択方法がわかりません。私はNOT INを使用したいが、現在の月のものを保持する方法がわからず、過去の予定を再確認する。この表では、私だけpatient_id 004現在の新しい患者のSQLのみ

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

私は(月()と年とし、分()でグループを使用します)このための関数。

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 ..と月(分からない、そうでなければ、1つのアポイントメントの日付と月から別の – Matt

+0

、ありがとう!(固定) –

関連する問題