Sql 语法问题?

Sql 语法问题?,sql,join,count,Sql,Join,Count,我使用的系统不允许我直接访问SQL数据库,我必须使用他们内置的报告工具,这太糟糕了。我正在运行下面的代码,它告诉我附近有一个语法错误),但我不明白这是怎么回事,有什么想法吗 SELECT ST.Staff_ID, COUNT (CASE WHEN Referral_Date BETWEEN @StartDate AND @EndDate ) AS 'Referrals', COUNT (CASE WHEN Att_Start_Dttm BETWEEN @StartDate AND @EndDat

我使用的系统不允许我直接访问SQL数据库,我必须使用他们内置的报告工具,这太糟糕了。我正在运行下面的代码,它告诉我附近有一个语法错误),但我不明白这是怎么回事,有什么想法吗

SELECT ST.Staff_ID,
COUNT (CASE WHEN Referral_Date BETWEEN @StartDate AND @EndDate ) AS 'Referrals',
COUNT (CASE WHEN Att_Start_Dttm BETWEEN @StartDate AND @EndDate ) AS 'Appointments'

FROM tbldiaryappointment DA
left outer join tblDiaryAppointmentClinicianInvitee CI on DA.Diary_Appointment_ID = CI.Diary_Appointment_ID
left outer join tblstaff ST on CI.Clinician_Invitee_Staff_ID = ST.STaff_ID
left outer join tbllocation LOC on LOC.Location_ID = DA.Scheduled_Location_ID
left outer join tblpatient PAT on PAT.Patient_ID = DA.Patient_ID
left outer join tblAttendanceTypeValues ATV on ATV.Attendance_Type_ID = DA.Attendance_Type_ID
left outer join tblDiaryAppointmentScheduledEvent SE on SE.Diary_Appointment_ID = DA.Diary_Appointment_ID
left outer join tblEventValues EVE on EVE.Event_ID = SE.Event_ID
left outer join tblProfessionalGroupValues PGV on ST.Professional_Group_ID = PGV.Professional_Group_ID
left outer join tblStaffJobRoleCodeValues JOB on JOB.Staff_Job_Role_Code_ID = ST.Job_Role_Code_ID
left outer join tblReferral REF on REF.Patient_ID = DA.Patient_ID

搜索的大小写表达式的语法为:

CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END
您缺少
布尔表达式
之后的部分

此外,您的语句缺少
GROUP BY
子句

SELECT ST.Staff_ID,
COUNT (CASE WHEN Referral_Date BETWEEN @StartDate AND @EndDate THEN 1 END) AS 'Referrals',
COUNT (CASE WHEN Att_Start_Dttm BETWEEN @StartDate AND @EndDate THEN 1 END ) AS 'Appointments'

FROM tbldiaryappointment DA
left outer join tblDiaryAppointmentClinicianInvitee CI on DA.Diary_Appointment_ID = CI.Diary_Appointment_ID
left outer join tblstaff ST on CI.Clinician_Invitee_Staff_ID = ST.STaff_ID
left outer join tbllocation LOC on LOC.Location_ID = DA.Scheduled_Location_ID
left outer join tblpatient PAT on PAT.Patient_ID = DA.Patient_ID
left outer join tblAttendanceTypeValues ATV on ATV.Attendance_Type_ID = DA.Attendance_Type_ID
left outer join tblDiaryAppointmentScheduledEvent SE on SE.Diary_Appointment_ID = DA.Diary_Appointment_ID
left outer join tblEventValues EVE on EVE.Event_ID = SE.Event_ID
left outer join tblProfessionalGroupValues PGV on ST.Professional_Group_ID = PGV.Professional_Group_ID
left outer join tblStaffJobRoleCodeValues JOB on JOB.Staff_Job_Role_Code_ID = ST.Job_Role_Code_ID
left outer join tblReferral REF on REF.Patient_ID = DA.Patient_ID
GROUP BY ST.Staff_ID

您的
案例当
不完整时,它应该包含
,然后。。。结束
我的答案似乎没有经过测试。这可能就是为什么我没有马上发布我想到的内容,因此我不是“竞赛”中的第一名。我的观点是正确的。谢谢你的质量检查。是的,这是太糟糕了,有一个大的比赛,因为这么多人浪费他们的答案试图张贴第一。