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