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)
このクエリは予定の開始時刻を調べますが、ドキュメントは金曜日に半日しか機能しないため、金曜日はカウントしません。カウントしたいと言われましたが、半日だけです(最初は除外するように言われました笑)。
午後 12 時以降に予定のない金曜日を半日としてカウントする Case ステートメントについて、誰か助けていただけませんか? に入る必要があると思いますScheduleDays=COUNT(DISTINCT(CAST(datediff(d,0,a.ApptStart) as datetime)))
。とにかくケースを使用する場合は、where 句の代わりに Friday と after 12 フィルターをそこに入れることができます。ScheduleDays=COUNT(DISTINCT CASE WHEN etc
. 本当に助かります。