Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/08/2015, 06:52
SitaFloyd
 
Fecha de Ingreso: agosto-2015
Mensajes: 9
Antigüedad: 8 años, 8 meses
Puntos: 0
Pregunta Query SQLserver

hola, estoy haciendo un procedimiento para un reporte, la idea es que tome el total del mes y sume los tickets que fueron cerrados en cada periodo de tiempo, 4, 8, 24,72,168 o mas de 168 horas
esta es mi query

Código SQL:
Ver original
  1. SELECT
  2.         COUNT(ti.id)AS total_id,
  3.         datepart(MONTH,ti.create_time) AS mes,
  4. SUM(CASE WHEN  DateDiff(MINUTE, ti.create_time, his.nlasttime) BETWEEN 0 AND 240 THEN 1 ELSE 0 END) AS Hasta4HH,
  5. SUM(CASE WHEN  DateDiff(MINUTE, ti.create_time, his.nlasttime) BETWEEN 241 AND 480  THEN 1 ELSE 0 END) AS Hasta8HH,
  6. SUM(CASE WHEN  DateDiff(MINUTE, ti.create_time, his.nlasttime) BETWEEN 481 AND 1440  THEN 1 ELSE 0 END) AS Hasta24HH,
  7. SUM(CASE WHEN  DateDiff(MINUTE, ti.create_time, his.nlasttime) BETWEEN 1441 AND 4320  THEN 1 ELSE 0 END) AS Hasta72HH,
  8. SUM(CASE WHEN  DateDiff(MINUTE, ti.create_time, his.nlasttime) BETWEEN 4321 AND 10080  THEN 1 ELSE 0 END) AS Hasta168HH,
  9. SUM(CASE WHEN  DateDiff(MINUTE, ti.create_time, his.nlasttime) > 10080  THEN 1 ELSE 0 END) AS Mayores168HH
  10.     FROM Otrs.dbo.ticket_history h
  11.  INNER JOIN Otrs.dbo.ticket ti ON h.ticket_id = ti.id
  12.  INNER JOIN Otrs.dbo.ticket_state s ON ti.ticket_state_id = s.id
  13.  LEFT JOIN otrs.dbo.vwTicketHistoryClose his ON ti.id = his.ticket_id    
  14.         WHERE  datepart(MONTH,ti.create_time)>= datepart(MONTH,DATEADD(MONTH,-1,getdate())) AND
  15. datepart(YEAR,ti.create_time)>= datepart(YEAR,DATEADD(MONTH,-1,getdate()))
  16.         GROUP BY datepart(MONTH,ti.create_time)

mi problema es que me muestra un mes completo ejemplo hoy estamos a 7 de agosto y retrocede hasta el 7 de julio necesito que solo me muestre lo que va de agosto, alguien me podria ayudar con eso?

de antemano gracias!!
saludos

Última edición por gnzsoloyo; 07/08/2015 a las 07:04