添加年份条款以计算每位患者的预约

时间:2016-09-06 20:26:35

标签: sql sql-server-2008

在以下查询中,我们会计算患者过去未预约过多少次。现在,我们只想要当年的计数。我没有成功获得这部分。我已经放入了WHERE area WHERE year(vwgenpatapptinfo) = 2016,但它不被接受。

 SELECT Distinct vwGenPatApptInfo.Appt_DateTime, vwGenPatInfo.Patient_Name, vwGenPatApptInfo.Appt_Status, vwGenPatApptInfo.Appt_Sched_Department_ID, vwGenPatApptInfo.Appt_Sched_Department_Descr, vwGenPatApptInfo.Patient_id,  vwGenPatApptInfo.Patient_number,                                                vwGenPatApptInfo.Appt_NoShow_Date,
     ISNULL(P.NotShowCount,0) AS NotShowCount
     FROM   vwGenPatInfo vwGenPatInfo INNER JOIN vwGenPatApptInfo vwGenPatApptInfo ON vwGenPatInfo.Patient_ID=vwGenPatApptInfo.Patient_ID
     LEFT JOIN
     (SELECT     Patient_ID, COUNT(Appt_Status) AS NotShowCount
                           FROM          (SELECT     Appt_DateTime, Appt_Status, Appt_Sched_Department_ID, Appt_Sched_Department_Descr, Appt_NoShow_Date, Patient_ID
                                                   FROM          vwGenPatapptInfo AS vwGenPatApptInfo
                                                   WHERE      (Appt_Status = 'N') AND (Appt_DateTime < DATEADD(day, DATEDIFF(day, 0, GETDATE()), - 1))) AS L 
                           GROUP BY Patient_ID) AS P ON  vwGenPatInfo.Patient_ID=P.Patient_ID
     WHERE  vwGenPatApptInfo.Appt_Status='N'
     ORDER BY vwGenPatApptInfo.Appt_Sched_Department_ID, vwGenPatApptInfo.Appt_DateTime

1 个答案:

答案 0 :(得分:1)

A)我认为它需要进入内部 WHERE - 它在括号内的WHERE (Appt_Status = 'N') AND (Appt_DateTime < DATEADD(day, DATEDIFF(day, 0, GETDATE()), - 1))) AS L所在的位置;和
B)它应该是year(vwgenpatapptinfo.appt_datetime) = 2016,而不仅仅是year(vwgenpatapptinfo) = 2016