SQL - Pivot en SQL Server 2012

   
Vista:
Imágen de perfil de Adan

Pivot en SQL Server 2012

Publicado por Adan (3 intervenciones) el 14/08/2015 21:29:25
Buenas tardes:

Traigo una duda, estoy tratando de ordenar unos registros de asistencia de personal, y tengo lo siguiente:

Usuario Fecha Estado
Arturo Mendez 2015-10-08 07:16:00.000 Entrada
Arturo Mendez 2015-10-08 18:24:00.000 Salida
Jose Martinez 2015-11-08 07:13:00.000 Entrada
Jose Martinez 2015-11-08 18:02:00.000 Salida

El resultado que requiero es:

Usuario Entrada Salida
Arturo Mendez 2015-10-08 07:16:00.000 2015-10-08 18:24:00.000
Jose Martinez 2015-11-08 07:13:00.000 2015-11-08 18:02:00.000

Actualmente tengo lo siguiente, pero solo me da el maximo o el minimo, y requiero todos los registros:

SELECT
id,nombre,[Entrada] as Entrada, [Salida] as Salida
FROM
(
Select
id,nombre,estado,fecha
from
CN_Asistencia
) PVT
PIVOT (MAX(fecha) FOR [estado] IN ([Entrada],[Salida])) AS Child

Muchas gracias por su apoyo, no se si alguien sepa en que estoy mal,

Buena tarde.
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
Imágen de perfil de Isaias

Pivot en SQL Server 2012

Publicado por Isaias (690 intervenciones) el 14/08/2015 22:11:14
Una muestra de como quieres los datos de salida, ayudaría bastante
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
Imágen de perfil de Adan

Pivot en SQL Server 2012

Publicado por Adan (3 intervenciones) el 14/08/2015 22:13:48
Si arriba lo comente:

El resultado que requiero es:

(-)= separacion
Usuario - Entrada - Salida
Arturo Mendez - 2015-10-08 07:16:00.000 - 2015-10-08 18:24:00.000
Jose Martinez - 2015-11-08 07:13:00.000 - 2015-11-08 18:02:00.000

Es ver el usuario, hora de entrada y hora de salida.

Gracias.
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
Imágen de perfil de Isaias

Pivot en SQL Server 2012

Publicado por Isaias (690 intervenciones) el 14/08/2015 22:55:08
Me suena a algo muy simple, veamos:

1
2
3
4
5
6
7
8
9
10
11
12
create table #Usuarios (nombre varchar(20), fecha datetime, estado varchar(10))
 
insert into #Usuarios values('Arturo Mendez','2015-10-08 07:16:00.000','Entrada')
insert into #Usuarios values('Arturo Mendez','2015-10-08 18:24:00.000','Salida')
 
insert into #Usuarios values('Jose Martinez','2015-11-08 07:13:00.000','Entrada')
insert into #Usuarios values('Jose Martinez','2015-11-08 18:02:00.000','Salida') 
 
 select nombre, MIN(fecha) entrada, MAX(fecha) salida
 from
 #Usuarios 
 group by nombre

Salida:

nombre entrada salida
Arturo Mendez 2015-08-10 07:16:00.000 2015-08-10 18:24:00.000
Jose Martinez 2015-08-11 07:13:00.000 2015-08-11 18:02:00.000

¿Para que quieres el PIVOT?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Adan

Pivot en SQL Server 2012

Publicado por Adan (3 intervenciones) el 17/08/2015 15:21:35
Si es cierto, nombre muchísimas gracias en ningún momento pensé en colocar el min y el max juntos.

Excelente aportación muchísimas gracias.

Excelente dia.
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
Imágen de perfil de Isaias Islas

Pivot en SQL Server 2012

Publicado por Isaias Islas (690 intervenciones) el 17/08/2015 19:18:20
De nada, un saludo
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