Ver Mensaje Individual
  #11 (permalink)  
Antiguo 04/03/2009, 00:16
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

Creo que la segunda consulta es la adecuada (error mío por no haber comprobado las posibles diferencias), pues podría ocurrir que tras la primera consulta que controla los máximos agrupados por número de los que tienen id_concepto <> a 21, al hacer el inner join se trae los que coinciden con esos dos datos tengan o no id_concepto <> 21. Creo que esos son los 10000 de más que aparecen seleccionados en la primera consulta. La segunda selecciona los máximos por número y luego hace la búsqueda de los que tengan id_concepto <> 21. Pero debes comprobar los datos tú. Revisa el listado obtenido de la primera consulta mostrando id_concepto y verás que alguno puede ser igual a 21, o haz alguna consulta de comprobación. Por ej. podías unir mediante left join las dos consultas de select y buscar campos null de la segunda consulta, para de ese modo ver ver cuáles son las diferencias y comprobar si esos datos diferentes están bien o mal, o más rápida, poner dos where, uno con trazabilidad.id_concepto <> 21 en la consulta interior y otro con where trazabilidad.id_concepto = 21 en la exterior, ambos a la vez, y si tienes 10000 ya sabes que hay un problema y que la segunda es la buena.

Última edición por jurena; 04/03/2009 a las 01:39