Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola colegas una vez más recurriendo a su conocimiento, estoy tratando de hacer un modelo en QV para llevar el control de las horas que capturan los empleados que se llena desde una aplicación web y los datos los almaceno en SQL Server, toda la información la tengo en una tabla en la cual quiero obtener y sumar por cada trabajador que seleccione cuantas horas capturó, cuantas se les aprobaron y cuantas se les rechazaron ya que sus respectivos supervisores verifican las checadas contra las horas capturadas en el sistema, la estructura de mi tabla es la siguiente:
CapturaHoras:
LOAD
Id as Registro,
Semana, //Semana del año en curso
FechaCaptura, //Fecha en que realiza la captura
Day(FechaCaptura), //Día
Month(FechaCaptura), //Mes
Year(FechaCaptura), //Año
Horas, //Horas trabajadas
Usuario, //Usuario que capturó las horas
EstatusRegistro, //Estatus de las horas Aprobadas, Rechazadas, Certificadas
if(EstatusRegistro= 2, 'Aprobadas') as Aprobadas,
if(EstatusRegistro= 3, 'Rechazadas') as Rechazadas,
if(EstatusRegistro= 4, 'Certificadas') as Certificadas,
Comentarios;
SQL SELECT *
FROM "HorasCapturas".dbo.RegistroHoras;
lo que quiero hacer es desde mi vista poder en las expresiones hacer un sum(Aprobadas) donde el resultado sea el total de horas capturadas con estatus Aprobadas para el empleado que seleccione, en dado caso que no seleccione ningún filtro sería la suma total de todas las horas con ese estatus registradas en mi tabla.
espero me explicara bien lo que quiero hacer y de ante mano muchas gracias por su ayuda
Estimado,
Asumiendo que el campo Horas es donde esta la cantidad de horas, podrías usar el análisis de Conjuntos para logra lo solicitado. Quedaría de esta manera:
Sum({<EstatusRegistro={2}>}Horas) para el caso de aprobadas
Sum({<EstatusRegistro={3}>}Horas) para el caso de rechazada
Sum({<EstatusRegistro={4}>}Horas) para el caso de certificadas
Saludos
Si has hecho así la carga con el LOAD, los 3 IFs los puedes quitar porque realmente no te aportan nada y la solución que te propone Joseph_morales es correcta.
Otra cosa es que quieras crear campos independientes para cada tipo de hora, entonces tendrías que hacer
LOAD
Id as Registro,
Semana, //Semana del año en curso
FechaCaptura, //Fecha en que realiza la captura
Day(FechaCaptura), //Día
Month(FechaCaptura), //Mes
Year(FechaCaptura), //Año
Horas, //Horas trabajadas
Usuario, //Usuario que capturó las horas
EstatusRegistro, //Estatus de las horas Aprobadas, Rechazadas, Certificadas
if(EstatusRegistro= 2, Horas,0) as Aprobadas,
if(EstatusRegistro= 3, Horas,0) as Rechazadas,
if(EstatusRegistro= 4, Horas,0) as Certificadas,
Comentarios;
SQL SELECT *
FROM "HorasCapturas".dbo.RegistroHoras;
De esta forma sólo tendrías que hacer SUM(Aprobadas), SUM(Rechazadas) o SUM(Certificadas)