Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/08/2015, 12:48
SitaFloyd
 
Fecha de Ingreso: agosto-2015
Mensajes: 9
Antigüedad: 9 años, 3 meses
Puntos: 0
De acuerdo Respuesta: Query SQLserver

gracias pero ya solucione todo lo que necesitaba dejo la query por si llega a servirle a alguien, me pidieron el mes en palabras, el porcentaje de cada rango, agrupar por mes y año y bueno mostrar los ultimos 3 meses.. ojala le sirva a alguien mas... saludos

nuevamente gracias libra ;)
Código SQL:
Ver original
  1. SELECT COUNT(DISTINCT ti.id)AS total_id,
  2. CASE DATEPART(MONTH,ti.create_time)
  3. WHEN 12 THEN 'diciembre'
  4. WHEN 11 THEN 'noviembre'
  5. WHEN 10 THEN 'octubre'
  6. WHEN 9 THEN 'septiembre'
  7. WHEN 8 THEN 'agosto'
  8. WHEN 7 THEN 'julio'
  9. WHEN 6 THEN 'junio'
  10. WHEN 5 THEN 'mayo'
  11. WHEN 4 THEN 'abril'
  12. WHEN 3 THEN 'marzo'
  13. WHEN 2 THEN 'febrero'
  14. WHEN 1 THEN 'enero'
  15. END AS mes,
  16. (((SUM(CASE WHEN DateDiff(MINUTE, ti.create_time, his.nlasttime) BETWEEN 0 AND 240 THEN 1 ELSE 0 END))*100)/COUNT(DISTINCT ti.id)) AS Hasta4HH,      
  17. (((SUM(CASE WHEN DateDiff(MINUTE, ti.create_time, his.nlasttime) BETWEEN 241 AND 480 THEN 1 ELSE 0 END))*100)/COUNT(DISTINCT ti.id)) AS Hasta8HH,
  18. (((SUM(CASE WHEN DateDiff(MINUTE, ti.create_time, his.nlasttime) BETWEEN 481 AND 1440 THEN 1 ELSE 0 END))*100)/COUNT(DISTINCT ti.id)) AS Hasta24HH,
  19. (((SUM(CASE WHEN DateDiff(MINUTE, ti.create_time, his.nlasttime) BETWEEN 1441 AND 4320 THEN 1 ELSE 0 END))*100)/COUNT(DISTINCT ti.id)) AS Hasta72HH,
  20. (((SUM(CASE WHEN DateDiff(MINUTE, ti.create_time, his.nlasttime) BETWEEN 4321 AND 10080 THEN 1 ELSE 0 END))*100)/COUNT(DISTINCT ti.id)) AS Hasta168HH,
  21. (((SUM(CASE WHEN DateDiff(MINUTE, ti.create_time, his.nlasttime) > 10080 THEN 1 ELSE 0 END))*100)/COUNT(DISTINCT ti.id)) AS Mayores168HH
  22.    FROM [Otrs].[dbo].[ticket] ti
  23.   INNER JOIN Otrs.dbo.ticket_state s ON ti.ticket_state_id = s.id
  24.   LEFT JOIN otrs.dbo.vwTicketHistoryClose his ON ti.id = his.ticket_id
  25.   INNER JOIN Otrs.dbo.queue q ON  ti.queue_id = q.id
  26.   WHERE datepart(MONTH,ti.create_time)>= datepart(MONTH,DATEADD(MONTH,-2,getdate())) AND
  27.   datepart(YEAR,ti.create_time)>= datepart(YEAR,DATEADD(MONTH,-2,getdate()))
  28.    AND q.name NOT LIKE '%SSGG%'
  29.    AND ti.ticket_state_id = 2
  30.    AND ti.type_id IN( 2 , 4 )
  31.   GROUP BY datepart(MONTH,ti.create_time),datepart(YEAR,ti.create_time)
  32.   ORDER BY datepart(YEAR,ti.create_time) ASC,datepart(MONTH,ti.create_time) ASC

Última edición por gnzsoloyo; 14/08/2015 a las 12:54