SQL - campos repetidos

   
Vista:
Imágen de perfil de Bryan

campos repetidos

Publicado por Bryan (1 intervención) el 27/03/2016 22:04:38
mi problema es el siguiente
tengo una tabla que coje datos de otras tablas la cual es esta
1
2
3
4
5
6
7
Nombre      Cedula                 Cargo         Fecha                    Hora
-----------------------------------------------------------------------------------------
  Juan         1002346758      Docente         01/02/2016           6:50:00
  Juan         1002346758      Docente         01/02/2016           12:40:00
  Juan         1002346758      Docente         01/02/2016           15:00:00
  Juan         1002346758      Docente         02/02/2016           12:50:00
  Juan         1002346758      Docente         02/02/2016           18:30:00

para sacar los datos que hay en esta tabla ise la siguiente consulta

1
2
3
4
5
6
SELECT        ad_empleado.nombre_emp + ' ' + ad_empleado.apellido_emp AS Nobre, ad_empleado.identificacion AS Cedula, ad_departamento.nombre_depto AS Cargo, CAST(sg_control_persona.fecha_hora AS date)
                         AS Fecha, CAST(sg_control_persona.fecha_hora AS Time) AS Hora
FROM            ad_empleado INNER JOIN
                         sg_control_persona ON ad_empleado.id_emp = sg_control_persona.nro_documento INNER JOIN
                         ad_departamento ON ad_empleado.id_depto = ad_departamento.id_depto
ORDER BY Nobre DESC

y lo que quiero sacar es esto

Nombre Cedula Cargo Fecha Hora_ing Hora_sal
----------------------------------------------------------------------------------------------------------------
Juan 1002346758 Docente 01/02/2016 6:50:00 15:00:00
Juan 1002346758 Docente 02/02/2016 12:50:00 18:30:00

me pueden ayudar con la consulta que tengo que hacer para sacar la seunda tabla porfabor
muchas graciias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

campos repetidos

Publicado por Gonzalo (21 intervenciones) el 28/03/2016 12:22:01
No hay registros "repetidos". Una repeticion es cuando todos los valores de cada columna se repiten entre dos registros, y no es el caso porque en la ultima columna los valores son diferentes entre sí.

Lo que pareces querer es el último registro de cada día por cada persona, y eso requiere el uso de clausulas MAX() sobre el la hora:


1
2
3
4
5
6
7
8
9
10
SELECT        ad_empleado.nombre_emp + ' ' + ad_empleado.apellido_emp Nobre,
                         ad_empleado.identificacion  Cedula,
                         ad_departamento.nombre_depto  Cargo,
                          CAST(sg_control_persona.fecha_hora AS date) Fecha,
                         MAX(CAST(sg_control_persona.fecha_hora AS Time)) Hora
FROM            ad_empleado INNER JOIN
                         sg_control_persona ON ad_empleado.id_emp = sg_control_persona.nro_documento
                          INNER JOIN ad_departamento ON ad_empleado.id_depto = ad_departamento.id_depto
GROUP BY Nobre, Cedula, Cargo, Fecha
ORDER BY Nobre

Me quedan ciertas dudas respecto a qué DBMS estás usando, pero la idea es esa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar