Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
mkcfernandez
Contributor
Contributor

Filtrar un campo de una tabla y hacer sum a los criterios que coinci

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

2 Replies
joseph_morales
Creator III
Creator III

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

 

Best Regards,
Joseph Morales
jmmayoral3
Creator
Creator

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)