Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL запрос с разбиение по дням  [new]
Vilkas
Member

Откуда:
Сообщений: 3
Здравствуйте, есть две таблицы status(id,name) и persons(id, name, (внешний ключ status)id_status, (дата приёма)date_employ,
(дата увольнения )date_uneploy). Подскажите пожалуйста, как можно сделать запрос который выводил бы количество сотрудников выбранного статуса, принятых или уволенных на работу за заданный период времени с разбиением по дням? Особенно интересует, как можно в данном случае сделать разбиение по дням?
16 сен 17, 14:00    [20800623]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос с разбиение по дням  [new]
aleks222
Guest
declare @d1 date = '20170801', @d2 date = '20170901';

with u as ( select Соcтояние = N'принят', id_status, [date] = cast(date_uneploy as date), [количество сотрудников] = count(*)  from persons where date_uneploy between @d1 and @d2 group by id_status, cast(date_uneploy as date) )
   , e as ( select Соcтояние = N'уволен', id_status, [date] = cast(date_employ as date), [количество сотрудников] = count(*)  from persons where date_employ between @d1 and @d2 group by id_status, cast(date_employ as date) )
   , ue as ( select * from u union all select * from e )

   select ue.Соcтояние
        , Статус = s.name
        , ue.[date]
        , ue.[количество сотрудников]
     from ue left outer join status as s on s.id = ue.id_status
;
16 сен 17, 14:41    [20800670]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос с разбиение по дням  [new]
Vilkas
Member

Откуда:
Сообщений: 3
aleks222,
Спасибо уважаемый форумчанин! Буду разбираться.
16 сен 17, 15:05    [20800689]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить