Выбрать группу данных по местоположению и дате окончания недели - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть таблица со следующими 6 столбцами:

EmployeeId, EmployeeName, CurrentStatus, Location, HireDate, TerminationDate

EmployeeId EmployeeName CurrentStatus, Location,  HireDate,  TerminationDate
2001       Peter        Active         London     1/1/2000 
2002       Jim          Terminated     Manchester 2/1/2016   7/1/2019

Мне нужно создать отчет с использованием SQL в следующемФормат:

Location    Week End Date   No of Employees Terminated
London      1/12/2019       0
Manchester  1/12/2019       1

У меня есть еще несколько требований:

  1. Мне нужно получать данные с 01.03.2016.
  2. Датой окончания недели должна быть суббота.
  3. Количество должно быть числом сотрудников, уволенных в течение этой недели.

Пожалуйста, предоставьте рекомендации, как мне этого добиться.

1 Ответ

0 голосов
/ 27 февраля 2019

Хммм.,,Делает ли это то, что вы хотите?

with weekends as (
      select cast('2019-01-12' as date) weekenddate
     )
select l.location, we.weekenddate,
       count(t.employeeid) as num_terminated
from weekends we cross join
     (select distinct location from t) l left join
     t
     on t.location = l.location and
        t.TerminationDate <= we.weekenddate and
        t.TerminationDate >= dateadd(day -6, we.weekenddate)
group by l.location, we.weekenddate
order by location, weekenddate;

Это создает все комбинации местоположений и выходных.Затем делает счет для каждого местоположения на каждую дату.Просто укажите нужные вам недели в CTE.

...