none
Como hacer una suma total RRS feed

  • Pregunta

  • Buenos dias a tod@s,

    Intento hacer un reporte en cual hago el siguiente query :

    SELECT     EmployeeName, ProjectName, TotalMinutes
    FROM         vueAccountEmployeeTimeEntry
    WHERE     (TimeEntryDate >= @DateDebut) AND (TimeEntryDate <= @DateFin)

    Es simple hasta que intento hacer lo siguiente :

    Quisiera tener en la columna Total, el total de horas por cada proyecto de cada empleado. Si trato de hacer un Group By nose porque no funciona y siempre que hago la suma de todo esto siempre me sale 450 (ejemplo de mi nombre).

    Me pueden explicar donde tendria que hacer la suma de todo esto y que me salga una linea por persona por proyecto y no 2 o 3 lineas por persona.

    Me podrian decir tambien si puedo pasar el nombre de un empleado por parametro para que no salgan todos los empleados al mismo tiempo

     

    Gracias


    Christopher Monzon Administrateur, système et réseaux TM4 Inc. www.tm4.com
    miércoles, 11 de enero de 2012 15:12

Respuestas

  • Debería salir la suma de minutos por proyecto y empleado si haces un GROUP BY:

    SELECT     EmployeeName, ProjectName, SUM(TotalMinutes)
    FROM         vueAccountEmployeeTimeEntry
    WHERE     (TimeEntryDate >= @DateDebut) AND (TimeEntryDate <= @DateFin) GROUP BY  EmployeeName, ProjectName

    En cuanto a pasar el nombre del empleado, basta con añadir otro parámetro:

    WHERE     (TimeEntryDate >= @DateDebut) AND (TimeEntryDate <= @DateFin) AND EmployeeName = @Nombre

    Si añades el @Nombre en la consulta del DataSet, se te creará automáticamente un ReportParameter con el mismo nombre, y te lo preguntará al emitir el informe.

     

    miércoles, 11 de enero de 2012 22:17
    Moderador

Todas las respuestas

  • Debería salir la suma de minutos por proyecto y empleado si haces un GROUP BY:

    SELECT     EmployeeName, ProjectName, SUM(TotalMinutes)
    FROM         vueAccountEmployeeTimeEntry
    WHERE     (TimeEntryDate >= @DateDebut) AND (TimeEntryDate <= @DateFin) GROUP BY  EmployeeName, ProjectName

    En cuanto a pasar el nombre del empleado, basta con añadir otro parámetro:

    WHERE     (TimeEntryDate >= @DateDebut) AND (TimeEntryDate <= @DateFin) AND EmployeeName = @Nombre

    Si añades el @Nombre en la consulta del DataSet, se te creará automáticamente un ReportParameter con el mismo nombre, y te lo preguntará al emitir el informe.

     

    miércoles, 11 de enero de 2012 22:17
    Moderador
  • Muchas gracias Alberto, funciona la suma.

    Tengo un pequeño problema, como todo eso esta en minutos le puse /60 para que me lo de en horas, y si funciona pero no logro poner las cifras despues del punto (.) Me explico si tengo 37.5 horas solo veo las 37.0 y no veo el .5

    Intento ir a Text Box Propesties y cambiarle en Number con 1 decimal o 2 decimales pero no funciona.

    Y mi ultima duda es como hago para que el reporte me de la lista de todos los empleados en una lista y cuando escojo uno ese sea el parametro.

    Gracias


    Christopher Monzon Administrateur, système et réseaux TM4 Inc. www.tm4.com
    jueves, 12 de enero de 2012 13:42
  • [...] como todo eso esta en minutos le puse /60 para que me lo de en horas, y si funciona pero no logro poner las cifras despues del punto (.) Me explico si tengo 37.5 horas solo veo las 37.0 y no veo el .5


    Si el valor de los minutos es un entero y le pones /60, se realiza una división entera (porque es un entero dividido por otro entero) y entonces el resultado es también entero y no tiene decimales. Puedes remediarlo poniendo /60.0


    jueves, 12 de enero de 2012 18:40
    Moderador
  • [...] Y mi ultima duda es como hago para que el reporte me de la lista de todos los empleados en una lista y cuando escojo uno ese sea el parametro.

    Se añade al report un segundo DataSet que tenga dentro una SELECT que produzca la lista de empleados. Después te vas a las propiedades del parámetro (que se llama "Nombre" si seguiste el ejemplo que te puse antes), y dentro de la pantalla de Propiedades hay una pestaña que permite establecer los valores disponibles. Dentro de esa pestaña hay una opción que dice algo así como "sacar los valores de una consulta", y ahí le especificas este DataSet que hemos añadido para proporcionar la lista de empleados.

     

    jueves, 12 de enero de 2012 18:43
    Moderador