Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Crear una vista con el último registro por cada persona

Estas en el tema de Crear una vista con el último registro por cada persona en el foro de SQL Server en Foros del Web. Buenas, Con SQLServer he creado una vista: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original IF OBJECT_ID ( 'dbo.su_ayuda_operarios' ) IS NOT NULL     DROP VIEW ...
  #1 (permalink)  
Antiguo 30/10/2017, 08:00
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 18 años, 11 meses
Puntos: 3
Crear una vista con el último registro por cada persona

Buenas,

Con SQLServer he creado una vista:

Código SQL:
Ver original
  1. IF OBJECT_ID ('dbo.su_ayuda_operarios') IS NOT NULL
  2.     DROP VIEW dbo.su_ayuda_operarios
  3. GO
  4.  
  5. CREATE VIEW su_ayuda_operarios AS
  6.  
  7. SELECT ct_RHTrabajador.cod_emp, ct_RHTrabajador.cod_tit, ct_RHTrabajador.tarjeta, (rtrim(ct_RHPersonas.apellido1) + ' ' +
  8. rtrim(ct_RHPersonas.apellido2) + ' ' + rtrim(ct_RHPersonas.nombre1) + ' ' + rtrim(ct_RHPersonas.nombre2)) AS nombre_completo ,
  9. ct_RHPersonas.doc_persona, ct_RHTrabajador.estado_trab, ct_RHTrabajador.fingreso, ct_RHTrabajador.cod_cargo,
  10. ct_RHTrabajador.ctafunc_banco, ct_RHTrabajador.jornal / ct_RHTrabajador.horas_dia AS por_hora, ct_RHTrabajador.cod_seccion,
  11. ct_RHTrabajador.cod_cate_tr, ct_RHCategoriaTr.descrip
  12. FROM ct_RHTrabajador INNER JOIN ct_RHPersonas ON ct_RHTrabajador.cod_persona = ct_RHPersonas.cod_persona
  13. INNER JOIN ct_RHCategoriaTr ON ct_RHTrabajador.cod_cate_tr = ct_RHCategoriaTr.cod_cate_tr
  14. AND ct_RHTrabajador.cod_emp = ct_RHCategoriaTr.cod_emp
  15. GO

cod_emp, doc_persona se repiten, por lo tanto visualizo varios registros iguales pero con fingreso diferentes. Necesito que en la vista se vea el último registro utilizando fingreso por cada cod_emp y doc_persona.

¿Cómo se puede hacer?

Desde ya, muchas gracias por las respuestas.
Saludos

Última edición por gnzsoloyo; 30/10/2017 a las 10:03
  #2 (permalink)  
Antiguo 30/10/2017, 08:06
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 7 meses
Puntos: 774
Respuesta: Crear una vista con el último registro por cada persona

tendrias que hacer algo como esto:

Código SQL:
Ver original
  1. SELECT * FROM usuarios AS t1
  2. INNER JOIN (SELECT MAX(ingreso), id_usuario FROM ingresos) AS t2 ON (t1.id_usuario=t2.id_usuario)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: cada, persona, registro, server, sql, vista
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:21.