
03/03/2009, 13:43
|
Colaborador | | Fecha de Ingreso: marzo-2008 Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 17 años 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. |