Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/11/2012, 15:36
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 6 meses
Puntos: 774
Respuesta: Separación de registros

a lo que entiendo quieres separar por nombre verdad?? entonces con row_number seria algo asi

select dato1,dato2,dato3, nombre, row_number() over(partition by nombre order by nombre asc) as rn from tabla

en este caso para adaptarlo a tu problema seria:


Código SQL:
Ver original
  1. DECLARE
  2.     @Fecha DATE,@term INT=NULL,@depto INT=NULL
  3.  
  4. SELECT * FROM (
  5.     SELECT p.id_ref_externa AS 'Id_personal',
  6.     t.descripcion AS 'Terminal',
  7.     d.desc_depto AS 'Departamento',
  8.     p.nombre AS 'Nombre',
  9.     ROW_NUMBER() OVER(partition BY p.nombre ORDER BY p.nombre) AS rn,
  10.     CONVERT(TIME,h.hora_entrada) AS 'Hora-Entrada'
  11.     FROM corporativodb.dbo.corp_personal p
  12.     INNER JOIN corporativodb.dbo.corp_terminales t ON t.id=p.id_terminal
  13.     INNER JOIN corporativodb.dbo.corp_depto d ON d.id_depto=p.id_depto
  14.     INNER JOIN corporativodb.dbo.corp_horarios h ON h.id_grupo_horario=p.id_grupo_horario
  15.     WHERE NOT EXISTS
  16.     (SELECT * FROM corporativodb.dbo.corp_asistencia a  WHERE a.id_personal=p.id_personal AND CONVERT(DATE,fecha_asistencia,108)=@Fecha)
  17.     AND NOT EXISTS
  18.     (SELECT * FROM transmaquiladb.dbo.tm_transfer_registroAsistencia ab WHERE ab.id_personal=p.id_ref_externa AND CONVERT(DATE,AB.fechahora_Evento,108)=@Fecha)
  19.     AND
  20.     ((@term IS NULL) OR (t.id=@term))
  21.     AND
  22.     ((@depto IS NULL)OR(d.id_depto=@depto))
  23.     AND
  24.     p.estatus_personal=1
  25.     AND
  26.     p.id_categoria IS NULL
  27. ) t1 WHERE rn=1
  28.     ORDER BY t1.id_terminal

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me