我们正在努力消除治疗中心使用的波动。
目前我们在一周的某些日子(TUES / THURS)使用量很大,而不是其他日子(MON,WED,FRI)
现在,患者通常需要在接受治疗之前接受检查,然后才能进行有效治疗。"看到很多病人的医生。医生是兼职的,所以很容易转换日子。
然而,有时他们会参加传统的" (对于他们来说)每周预约,但不需要审查,因此可以将他们移到另一天(前进或后退一天)。
然而,只有在那一周有(1)预约(有些治疗是一周内的多天)时,这才有效。
所以:
第一。找到所有参加治疗的患者(LOCATION =" CHEMO")每天某一周(M / T / W / T / F)没有预约审查(LOCATION =" CLINIC")
第二。仅列出那周没有其他治疗的患者。
目前我在VBA代码中以编程方式执行此操作..但我想知道他们是否是一个更好的方法在SQL中列出一周中每一天的所有约会与ApptComment,看看他们是否可能是可移动的。
约会表:
ApptID - autoicrement
ApptDate
ApptTime
PatientID - unique to patient
LocationID - ("CHEMO","REVIEW")
ApptCancelledYN - Boolean
ApptComment - containts the treatment details
答案 0 :(得分:0)
2)仅列出那周没有其他治疗的患者
我们假设用户输入是DATE(2014年12月26日 - >第4周)
declare @given_week int
declare @given_month int
declare @given_year int
set @given_week =(select DATEPART(ww,@GIVEN_DATE)
set @given_month =(select DATEPART(mm,@GIVEN_DATE)
set @given_year =(select DATEPART(yy,@GIVEN_DATE)
- 以下查询将为您提供在该周内没有其他治疗的患者名单
select PatientID, count(PatientID) from
AppointmentsTable
where DATEPART(ww,ApptDate) = @given_week
and DATEPART(mm,ApptDate) = @given_month
and DATEPART(yy,ApptDate) = @given_year
group by PatientID
having count(PatientID) =1
or
select PatientID,ApptComment, count(PatientID) from
AppointmentsTable
where DATEPART(ww,ApptDate) = @given_week
and DATEPART(mm,ApptDate) = @given_month
and DATEPART(yy,ApptDate) = @given_year
group by PatientID,ApptComment
having count(PatientID) =1
- 如有必要,在where子句中包含LocationID
1)找到所有参加治疗的患者(LOCATION =" CHEMO")每天某一周(M / T / W / T / F)谁没有预约复查( LOCATION =" CLINIC&#34)
declare @given_week int
declare @given_month int
declare @given_year int
set @given_week =(select DATEPART(ww,@GIVEN_DATE)
set @given_month =(select DATEPART(mm,@GIVEN_DATE)
set @given_year =(select DATEPART(yy,@GIVEN_DATE)
select PatientID from AppointmentsTable
where DATEPART(ww,ApptDate) = @given_week
and DATEPART(mm,ApptDate) = @given_month
and DATEPART(yy,ApptDate) = @given_year
and LocationID = 'CHEMO' and PatientID NOT IN
(
select DISTINCT PatientID from AppointmentsTable
where DATEPART(ww,ApptDate) = @given_week
and DATEPART(mm,ApptDate) = @given_month
and DATEPART(yy,ApptDate) = @given_year
and LocationID = 'CLINIC'
and ApptComment like '%review%'
)