отображать даты в месяцах - PullRequest
1 голос
/ 19 июня 2019

Мне нужно рассчитать количество билетов, над которыми работал один из членов моей команды в течение определенного периода времени, исходя из месяцев.У меня есть следующий код, который показывает количество билетов за весь период времени (с сентября по март).Как мне изменить код, чтобы увидеть количество билетов в месяц.Вот мой код, который показывает идентификаторы билетов с фактической датой:

select distinct(t1.ticketid) as [Tickets], 
t1.BuilderAnalystID,t2.EMPFullName  from table1 as t1
inner join employee as t2
    on t1.BuilderAnalystID=t2.EmployeeID 
where 
builderanalystid='7' and
StatusID <>'12'and
cast(BuildCMPLTDT as date)>= '2017-09-01'
and cast(BuildCMPLTDT as date)< '2018-04-01'

Я могу экспортировать все результаты в Excel и создать сводную таблицу для достижения моей цели, но просто хотел знать, можно ли это сделатьсделано в sql.

Вот результаты, которые я получаю: enter image description here

вот что я хочу:

enter image description here

вывод, основанный на запросе, который предложила Амрита Шривастава:

enter image description here

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Это основной запрос ... Вы можете добавить столбцы удаления в соответствии с вашими требованиями ...

select count(ticketid), [MONTH] = datename(MM, BuildCMPLTDT ) 
FROM table1 
GROUP BY datename(MM, BuildCMPLTDT )

ОБНОВЛЕНО (С ОПРЕДЕЛЕННОЙ РАМКОЙ ВРЕМЕНИ):

select count(DISTINCT ticketid), [MONTH] = datename(MM, BuildCMPLTDT ) 
FROM table1 
WHERE CONVERT(DATE,compl_date) BETWEEN CONVERT(DATE,'2017-09-01') AND CONVERT(DATE,'2018-04-01')  
GROUP BY datename(MM, BuildCMPLTDT )
0 голосов
/ 19 июня 2019

Адаптированный под ваш запрос, вы бы использовали:

select t2.EMPFullName, year(BuildCMPLTDT), month(BuildCMPLTDT),
       count(*) as num_tickets
from table1 t1 join
     employee t2
     on t1.BuilderAnalystID = t2.EmployeeID 
where builderanalystid = 7 and  -- looks like a number so removed single quotes
      StatusID <> 12 and        -- looks like a number so removed single quotes
      BuildCMPLTDT >= '2017-09-01' and  -- `cast()` is unnecessary
      BuildCMPLTDT < '2018-04-01'
group by t1.BuilderAnalystID, t2.EMPFullName, year(BuildCMPLTDT), month(BuildCMPLTDT);

Когда вы тянете месяц, вы должны также тянуть год.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...