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)
Этот запрос будет выглядеть через назначение времени начала и не рассчитывать пятницы наших Docs работают только половину дня по пятницам. Мне сказали, что мы хотим, чтобы их сосчитать, но только как в полдня (первый раз мне сказали, чтобы их исключить).SQL Server 2008 Count (Distinct СЛУЧАЙ?
Может кто-нибудь, пожалуйста, помогите мне с заявлением о делах, которое будет считать пятницы, у которых нет встречи после 12 минут, как полдня? придется поместиться в ScheduleDays=COUNT(DISTINCT(CAST(datediff(d,0,a.ApptStart) as datetime)))
. Возможно, мы можем поставить пятницу и после 12 фильтров там, а не в предложение where, если мы будем использовать случай в любом случае. ScheduleDays=COUNT(DISTINCT CASE WHEN etc
. Я очень ценю помощь.
Опубликованная запрос возвращает количество дней в текущем месяце, когда врач имеет запланированную встречу, которая не в пятницу, а во второй половине дня , Никаких назначений в пятницу не засчитывается, и никакие утренние встречи не засчитываются. Вы запрашиваете запрос, который подсчитывает тот же прием, но только до полудня, если назначение назначено на пятницу и в любое время в другие дни? –
Хм, как вы можете сказать, я новичок в этом материале SQL. Я хочу, чтобы он засчитывал все дни, которые назначили встречу. Если в пятницу утром встречаются только по назначению (cuttoff в полдень), мы считаем это полдня. Идея здесь состоит в том, чтобы вернуть количество дней, в которые doc имеет встречи и считая пятницы как полдня. Мы собираемся использовать это, чтобы установить для них ориентиры. – user2588088
Можете ли вы задать свой вопрос лучше, более описательно? Это похоже на вопрос, который может быть полезен другим пользователям, так что было бы позором, если они не будут найдены ими из-за названия :-) – Josien