Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas tardes.
Estimados, sigo trabajando en mi app de control de asistencia, con la siguiente información.
Cédula | Fecha | H_Entrada | H_Salida | Total de Horas |
15664062 | 2016-04-25 | 07:03:49 | 18:50:01 | 11:46:12 |
15664062 | 2016-04-26 | 13:29:05 | 17:56:43 | 04:27:38 |
15664062 | 2016-04-27 | 07:14:01 | 17:46:24 | 10:32:23 |
16429625 | 2016-04-26 | 07:10:51 | 17:35:31 | 10:24:40 |
16429625 | 2016-04-27 | 07:16:08 | 17:04:14 | 09:48:06 |
18096033 | 2016-04-25 | 06:04:20 | 16:50:55 | 10:46:35 |
18096033 | 2016-04-26 | 06:04:04 | 16:49:35 | 10:45:31 |
18096033 | 2016-04-27 | 05:53:17 | 15:35:21 | 09:42:04 |
El resultado del campo "Total de Horas" lo obtengo de la siguiente expresión Interval(H_Salida-H_Entrada), sin embargo el resultado es en formato "visual" de horas pero a nivel de datos es string: ¿Como hago para que ese resultado tenga el formato Time?
Lo necesito en formato Time ya que estoy creando un gráfico con una expresión de Cumplimiento de la siguiente manera:
Aggr(sum(If([Total de Horas] >='09:45' and H_Entrada<=MakeTime(8) and H_Salida>=MakeTime(17),1,0)),Mes)
También lo coloque de la siguiente forma:
Aggr(sum(If([Total de Horas] >=MakeTime(9,45) and H_Entrada<=MakeTime(8) and H_Salida>=MakeTime(17),1,0)),Mes)
Sin embargo no obtengo ningún resultado.
Agradezco de antemano su colaboración
Hola,
Si ves que te complicas haz un precedent LOAD, es decir carga el SQL y antes del Select metele un LOAD con los campos que quieres y los que quieres transformar.... es decir:
Load Fecha,
Año,
entrada,
salida,
Cédula,
Timestamp([H_Entrada],'hh:mm:ss') as H_Entrada,
Timestamp([H_Salida],'hh:mm:ss') as H_Salida,
Timestamp(Timestamp(H_Salida,'hh:mm:ss')-Timestamp(H_Entrada,'hh:mm:ss'),'hh:mm:ss') as Total_de_Horas
select
Cedula as Cédula,
entrada,
salida,
convert(date,Entrada,105) as Fecha,
DATEPART(year, Entrada) as Año,
substring(convert(varchar(20), Entrada, 9), 13, 5) + ' ' +
substring(convert(varchar(30), Entrada, 9), 25, 2) as [Hora Entrada],
substring(convert(varchar(20), Salida, 9), 13, 5) + ' ' +
substring(convert(varchar(30), Salida, 9), 25, 2) as [Hora Salida],
convert(time(0), Entrada) as H_Entrada,
convert(time(0), Salida) as H_Salida,
DATEPART(month, Entrada) as Mes,
DATEPART(WEEK, Entrada) as Semana,
DATEPART(WEEKDAY, Entrada) as [Día de la Semana],
DATEPART(day, Entrada) as Día
from InOut
where Entrada between '20160201' and '20160430';
Prueba y nos comentas aunque intenta trabajar con qvds...... que te irá mejor todo
Saludos,
Hola jordi, cuando recargo la app solo me trae los datos del Load y no los del select
OLEDB CONNECT TO [Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial
Load Fecha,
Año,
entrada,
salida,
Cédula,
Timestamp([H_Entrada],'hh:mm:ss') as H_Entrada,
Timestamp([H_Salida],'hh:mm:ss') as H_Salida,
Timestamp(Timestamp(H_Salida,'hh:mm:ss')-Timestamp(H_Entrada,'hh:mm:ss'),'hh:mm:ss') as Total_de_Horas;
select
Cedula as Cédula,
entrada,
salida,
convert(date,Entrada,105) as Fecha,
DATEPART(year, Entrada) as Año,
substring(convert(varchar(20), Entrada, 9), 13, 5) + ' ' +
substring(convert(varchar(30), Entrada, 9), 25, 2) as [Hora Entrada],
substring(convert(varchar(20), Salida, 9), 13, 5) + ' ' +
substring(convert(varchar(30), Salida, 9), 25, 2) as [Hora Salida],
convert(time(0), Entrada) as H_Entrada,
convert(time(0), Salida) as H_Salida,
DATEPART(month, Entrada) as Mes,
DATEPART(WEEK, Entrada) as Semana,
DATEPART(WEEKDAY, Entrada) as [Día de la Semana],
DATEPART(day, Entrada) as Día
from InOut
where Entrada between '20160201' and '20160515';
Estoy comenzando con qlikview y desconozco de mucas cosas, así que todas las recomendaciones que me hagan bienvenidas sean.
Hola,
Añade en el LOAD los campos que te falten del SELECT... el LOAD lo que hace es transformar y cargar los campos que tu quieras del SELECT. Si pusieras * te los cargaría todos..... pero necesitas transformar algunos campos. Mira algun ejemplo de Precedent LOAD
Saludos,
Hola Luis:
Te subo tu script actualizado con un LOAD antes de la SELECT.
La sentencia LOAD te permite manipular los campos devueltos por tu BBDD con funciones propias de QlikView, es en esa parte donde tienes que incluir las sugerencias que tenemos realizado Jordi y yo mismo
Saludos
Joaquín
Muchísimas gracias, me verán muy seguido por este foro.
Hola Luis,
Vuelve cuando quieras para eso está...
Un abrazo