Consulta como referencia cruzada.

29/07/2005 - 22:55 por nelva | Informe spam
Tengo un archivo .csv. con el siguiente esquema: (control de marcada)

emp_id fecha time ect.
1 14/01/05 08:00:00 am
1 14/04/05 17:00:00 pm
2 14/04/05 08:00:00 am
2 14/04/05 17:00:00 pm


quisiera poder ponerlos en una tabla de la siguiente forma:

emp_id fecha Entrada SAlida
1 14/01/05 08:00:00 am 17:00:00 pm
2 14/04/05 08:00:00 am 17:00:00 pm
 

Leer las respuestas

#1 Alejandro Mesa
29/07/2005 - 22:46 | Informe spam
Nelva,

Al parecer estan almacenando los valores de fecha en una columna tipo char /
varchar, y a pesar de los problemas causados por almacenar los valores de
años usando dos digitos, lo hacen de esta forma. Tambien parece que guardan
los valores de tiempo en una columna tipo char / varchar, en formato 24 horas
pero ademas con AM / PM (interesante). Por que no rediseñan la tabla y
guardan estos valores en una columna datetime?. Aca posteo una posible
solucion, pero como veras, es horrible de leer, de entender, asi como la
performance.

select
emp_id,
fecha,
convert(varchar(12), entrada, 108) + ' ' + right(convert(varchar(25),
entrada, 100), 2) as entrada,
convert(varchar(12), salida, 108) + ' ' + right(convert(varchar(25),
salida, 100), 2) as salida
from
(
select
emp_id,
fecha,
min(
cast(
case
when cast(right(fecha, 2) as int) < 50 then '20'
else '19'
end + right(fecha, 2) + '-' + substring(fecha, 4, 2) + '-' + left(fecha,
2) + 'T' + cast(tiempo as varchar(8))
as datetime)
),
max(
cast(
case
when cast(right(fecha, 2) as int) < 50 then '20'
else '19'
end + right(fecha, 2) + '-' + substring(fecha, 4, 2) + '-' + left(fecha,
2) + 'T' + cast(tiempo as varchar(8))
as datetime)
)
from
t1
group by
emp_id,
fecha
) as t(emp_id, fecha, entrada, salida)
go

drop table t1
go


AMB

"nelva" wrote:

Tengo un archivo .csv. con el siguiente esquema: (control de marcada)

emp_id fecha time ect.
1 14/01/05 08:00:00 am
1 14/04/05 17:00:00 pm
2 14/04/05 08:00:00 am
2 14/04/05 17:00:00 pm


quisiera poder ponerlos en una tabla de la siguiente forma:

emp_id fecha Entrada SAlida
1 14/01/05 08:00:00 am 17:00:00 pm
2 14/04/05 08:00:00 am 17:00:00 pm







Preguntas similares