SELECT
ScheduleDays = COUNT(DISTINCT(CAST(datediff(d, 0, a.ApptStart) AS datetime)))
FROM
Appointments a
WHERE
ApptKind = 1 AND
--filter on current month
a.ApptStart >= ISNULL(DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0),'1/1/1900') AND
a.ApptStart < ISNULL(DATEADD(month, DATEDIFF(month, 0, GETDATE())+1, 0),'1/1/3000')AND
--filter all days that aren't Friday, and then give you all Fridays that have an hour > 12.
DATENAME(weekday, a.ApptStart) <> 'Friday' and DATEPART(hour, a.ApptStart) > 12 AND
--Filter on doctor
a.ResourceID in (201)
这个查询将寻找通过预约开始时间和不计星期五作为我们的文档只工作在周五半天。有人告诉我,我们要指望他们,但只(我第一次被告知要排除他们哈哈)SQL Server 2008的计数(不同呢?
有人可以请求帮助我一个案例声明,将计数周五没有预约后12noon,半天?我相信它将不得不在ScheduleDays=COUNT(DISTINCT(CAST(datediff(d,0,a.ApptStart) as datetime)))
。也许我们可以把星期五和之后的12个过滤器放在那里,而不是在where子句中,如果我们打算使用case。ScheduleDays=COUNT(DISTINCT CASE WHEN etc
。我真的很感谢帮助。
您发布的查询返回当前的月份,其中一个医生有预约时间是不是在周五下午的天数。不计算星期五的约会,也不计算早上的约会。你是否要求提供同样预约计数的查询,但是只有在中午之前预约是在星期五,还是在其他时间的任何时间? –
嗯,你可以告诉我这个SQL的新东西。我希望它能够计算所有有约会的日子。如果星期五早上只有约会(中午截止),那么我们将它算作半天。这里的想法是将文档预约的天数和计入星期五的天数返回为半天。我们将用它来为他们设定基准。 – user2588088
你能否提出一个更好,更具描述性的标题?它看起来像是一个可能对其他用户有用的问题,如果因为标题而无法找到它们,那将是一种耻辱:-) – Josien