2016-07-07 2 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 .. 및 월 (분)을 반대해야합니다 그렇지 않으면 또 하나에서 약속 날짜와 한달 양식을 얻을 수 – Matt

+0

잡기, 고마워! (고정) –

관련 문제