Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/03/2009, 13:43
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: ordenar y luego agrupar

Yo lo probaría en los dos sitios
1)
insert into facturas2
(SELECT trazabilidad.id, trazabilidad.num_documento, trazabilidad.fecha_hora
FROM trazabilidad
INNER JOIN (SELECT MAX(fecha_hora) FECH, num_documento
FROM trazabilidad WHERE trazabilidad.id_concepto <> 21 GROUP BY num_documento) t1 ON t1.num_documento = trazabilidad.num_documento AND t1.FECH = trazabilidad.fecha_hora ORDER BY trazabilidad.fecha_hora DESC);

2)
insert into facturas2
(SELECT trazabilidad.id, trazabilidad.num_documento, trazabilidad.fecha_hora
FROM trazabilidad
INNER JOIN (SELECT MAX(fecha_hora) FECH, num_documento
FROM trazabilidad GROUP BY num_documento) t1 ON t1.num_documento = trazabilidad.num_documento AND t1.FECH = trazabilidad.fecha_hora WHERE trazabilidad.id_concepto <> 21 ORDER BY trazabilidad.fecha_hora DESC);

Pero para probar la bondad de cada una de ellas las pondría a prueba:
Primero lanzaría esta para ver el resultado y el tiempo
SELECT trazabilidad.id, trazabilidad.num_documento, trazabilidad.fecha_hora
FROM trazabilidad
INNER JOIN (SELECT MAX(fecha_hora) FECH, num_documento
FROM trazabilidad WHERE trazabilidad.id_concepto <> 21 GROUP BY num_documento) t1 ON t1.num_documento = trazabilidad.num_documento AND t1.FECH = trazabilidad.fecha_hora ORDER BY trazabilidad.fecha_hora DESC

y luego lanzaría esta
SELECT trazabilidad.id, trazabilidad.num_documento, trazabilidad.fecha_hora
FROM trazabilidad
INNER JOIN (SELECT MAX(fecha_hora) FECH, num_documento
FROM trazabilidad GROUP BY num_documento) t1 ON t1.num_documento = trazabilidad.num_documento AND t1.FECH = trazabilidad.fecha_hora WHERE trazabilidad.id_concepto <> 21 ORDER BY trazabilidad.fecha_hora DESC

La más rápida será la mejor.