2011-09-26 27 views
7

Estoy buscando agregar una columna en mi matriz SSRS que me dé el porcentaje de la columna total en esa fila.Calcular porcentaje del total de columnas basadas en la columna total en la matriz SSRS

estoy usando la siguiente expresión, pero seguir recibiendo el 100% de mis porcentajes (estoy suponiendo que esto se debe a que el total se evaluó pasado, por lo que sólo está haciendo total/total?

=FORMAT((Fields!ID.Value/SUM(Fields!ID.Value)), "P") 

El Identificación campo se calcuted dentro de SQL, no SSRS

por ejemplo

Site | Value 1 | %1 | Value2 | %2 | Total 
    1 | 20  | 50% | 20  | 50% | 40 
+0

Los valores de "Valor 1" y "Valor 2" son iguales para propósitos de ejemplo o están siendo alimentados por los mismos campos. ID.Valor? – KreepN

Respuesta

16

Probablemente esto sucede porque es necesario definir el alcance adecuado para la función SUMA:.

SUM(Fields!ID.Value,"group_name") en lugar de llanura SUM(Fields!ID.Value)

Actualizado:

necesitaba algo de tiempo para hacer un ejemplo ya que no cuentan con servicios de información disponibles la primera vez que te respondí.

Se puede ver el resultado y el campo Valores

enter image description here

enter image description here

+1

Parece que debería ser la solución correcta; sin embargo, cuando agrega una columna de totales, no se le asigna un nombre de grupo. Esto hace que no se pueda llamar. – Tom

+0

estuvo batallando con esto por un par de horas ... ¡gracias por la solución! –

5

duro para ofrecer detalles sin más información sobre la configuración de los grupos, pero se debe buscar en el uso de la opción de ámbito para los operadores agregados como SUM o primero:

=SUM(Fields!ID.Value, "NameOfRowGrouping")/SUM(Fields!ID.Value, "TopLevelGroupName") 

Además, para mantener las cosas limpias n, debe mover su formato fuera de la expresión y a las propiedades del marcador de posición o las propiedades del cuadro de texto que contiene su valor.

+0

Gracias - esto funcionó cuando el nombre del grupo de nivel más bajo, por ej. 'matrix1_SiteName' que era el valor total de la fila. – PeterX

Cuestiones relacionadas