Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/11/2011, 10:13
Avatar de stuart_david3
stuart_david3
 
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 13 años, 4 meses
Puntos: 1
Información Valor máximo de una fecha para registros que no se repitan!!!...

Hola!!! Pues tengo un problema con una consulta en SQL, quisiera que me arroje estos registros:

fe_repro, rpe, cl_puest, puesto

Siempre y cuando me arroje la fecha mayor para cada trabajador, es decir la fecha maxima para cada "rpe" que tenga en la tabla. Con esta consulta si me los arroja:

Código SQL:
Ver original
  1. SELECT MAX(b_contra.fe_repro), b_traba1.rpe, c_puesto.cl_puest, c_puesto.puesto FROM b_contra, b_traba1, c_puesto WHERE b_traba1.rpe=b_contra.rpe AND c_puesto.cl_puest=b_contra.cl_puest GROUP BY b_traba1.rpe, c_puesto.cl_puest, c_puesto.puesto ORDER BY b_traba1.rpe

Pero como en la tabla original tengo algunos registros repetidos con el rpe, el cl_puest y el puesto diferentes pues me arroja el valor máximo de la fecha para registros con "rpe" iguales ya que los registros de "cl_puest" y de "puest" son diferentes.

Pensé que con un group by para "rpe"y he aquí mi segunda pregunta la cual he tenido ya varios días y no la he podido aclarar: No es posible hacer en SQL un group by para solo un registro en especifico?? Ya que cuando ejecuto mi consulta en el entorno de asp.net me marca error si no incluyo en el group by los registros que tenga declarados en el select a menos que tenga una función agregada para el registro que declare en el select (max, min avg)...

Intente de igual manera con esta consulta, pero en ella solo me arroja la fecha más grande que encuentra en toda la tabla:

Código SQL:
Ver original
  1. SELECT b_contra.fe_repro, b_traba1.rpe, c_puesto.cl_puest, c_puesto.puesto FROM b_contra, b_traba1, c_puesto WHERE fe_repro=(SELECT MAX(fe_repro) FROM b_contra) AND b_traba1.rpe=b_contra.rpe AND c_puesto.cl_puest=b_contra.cl_puest GROUP BY b_contra.fe_repro, b_traba1.rpe, c_puesto.cl_puest, c_puesto.puesto ORDER BY b_traba1.rpe

Intente con la función GREATEST pero me arroja un error en la página de asp que dice: ""'GREATEST'no es un nombre de función reconocido."" Este es como se ve una parte de la tabla que resulta de la consulta:

Columna1 rpe cl_puest puesto
04/10/2010 12:00:00 a.m. 07063 65331 AUXILIAR ADMINISTRATIVO
06/10/2009 12:00:00 a.m. 07068 65334 LINIERO LV
06/10/2009 12:00:00 a.m. 07081 65334 LINIERO LV
03/11/2009 12:00:00 a.m. 07081 66334 LINIERO ENCARGADO LV


Agradezco mucho su ayuda de antemano...

Última edición por stuart_david3; 02/11/2011 a las 10:46 Razón: Erroooor!!!...