2013-10-11 2 views
0

Что я хочу сделать, это показать среднее количество минут, которое техник работал над каждым билетом, но только там, где среднее значение больше или равно общим средним минутам за билет. Но вы не можете использовать avg on datetime.Как получить среднее количество минут из даты и времени?

Я знаю, что это совершенно неправильно, но это то, что я начинаю с:

select user_firstname + ' ' + user_lastname as technician_name, 
avg(ticket_requestdate - ticket_closeddate) as average_minutes_per_ticket 
from hd_users 
    join hd_tickets on ticket_requestor_id=user_id 
where user_is_technician = '1' 
having avg(ticket_requestdate - ticket_closeddate) >= 
     (select avg(ticket_requestdate - ticket_closeddate) from hd_users) 
+2

если вы предоставите структуру таблицы имеет больше смысла. Трудно определить, в каком поле находится таблица atm. – Kaf

ответ

2

Я хотел бы использовать DateDiff() с минутами в подзапроса

datediff(minute,datestart,dateend) 

, то вы получите количество минут, как межд, а затем вы можете сделать AVG()

или

avg(datediff(minute,datestart,dateend)) 

---- EDIT ---- Я предполагаю, немного, так как я не знаю структуру таблицы, но то, что об этом

select user_firstname + ' ' + user_lastname as technician_name, 
avg(Datediff(minute,ticket_requestdate,ticket_closeddate)) as average_minutes_per_ticket 
from hd_users 
join hd_tickets on ticket_requestor_id=user_id 
where user_is_technician = '1' 
GROUP BY user_firstname, user_lastname 
having avg(Datediff(minute,ticket_requestdate,ticket_closeddate)) >= 
    (select avg(Datediff(minute,ticket_requestdate,ticket_closeddate)) from hd_users) 
+5

[Пожалуйста, используйте 'MINUTE', а не' 'm''. Вот почему] (http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/bad-habits-to-kick-using-shorthand-with-date-time-operations.aspx). В настоящее время это приводит к ошибке, а 'M' - в любом случае, а не в минуту. Я думаю, что это демонстрирует мою точку зрения довольно просто: ленивая стенография глупа. –

+3

благодарит за комментарий и ссылку на ваш блог, я обновил свой ответ и теперь избавлюсь от сокращенных сокращений @AaronBertrand – Hedinn

+0

Но как я могу справиться с> =? Я получаю сообщение об ошибке, которое говорит о том, что будет возвращено больше одного значения, что не разрешено с помощью> = –

Смежные вопросы