Comment combiner des agrégats au sein d'un groupe avec des agrégats entre groupes au sein de SSRS
Avec ce jeu de données:
Category | Amount
A | 5
A | 3
B | 6
B | 2
B | 1
C | 7
Je veux créer un tableau matriciel de regroupement de la catégorie, en affichant le pourcentage du montant total:
Category | Percentage
A | 33%
B | 38%
C | 29%
Qui devrait être un simple calcul:
Category | Percentage
A | ((Sum of Amount within group /Sum of Amount across groups) * 100)%
B | ((Sum of Amount within group /Sum of Amount across groups) * 100)%
C | ((Sum of Amount within group /Sum of Amount across groups) * 100)%
Mais je ne peux pas comprendre comment le faire que dans le Concepteur de Rapports (SSRS) - chaque fois que je créer une ligne de regroupement sur Category
je peux obtenir la somme au sein du groupe avec =Sum(Fields!Amount.Value)
. Mais comment obtenir la somme de tous les groupes à partir d'une cellule au sein du groupe?
source d'informationauteur vstrien
Vous devez vous connecter pour publier un commentaire.
Je vais répondre à ma propre question.
De l'intérieur de toute expression, il est possible d'effectuer des recherches dans tous les ensembles de données. Grâce à cette façon nous allons obtenir les données:
Maintenant, nous allons monter la barre pour la question et dire que les données sont groupées dans une autre dimension, mois comme ceci:
Dire que le jeu de données mentionnées dans la question, est nommé "catégories". Maintenant, appelez sur le
LookupSet
fonction (Référence):(gardez à l'esprit que le premier "Mois" est liée à l'ensemble de données dans le tableau matriciel, et le second "Mois" dans le deuxième argument est le "Mois" de la "catégories" dataset!)
Il reste un problème: LookupSet retourne
Object
types, quiSum
ne pas en manger. Vous devez utiliser un agrégat personnalisé, (code personnalisé est ajouté dans "Propriétés de Rapport"): (Source)Maintenant, en appelant
Code.SumLookup
sur leLookupSet
fonction de la somme est calculée de tous les domaines.Vous pourriez avoir utilisé de la Portée des descripteurs pour identifier les groupes qui la SOMME est à exécuter sur:
Regroupés Quantité: [Sum(Montant)]
Dataset Total: SOMME(Champs!Montant.Valeur, "DataSet1")
Pourcentage: SOMME(Champs!Montant.La valeur, la "Catégorie") /SOMME(Champs!Montant.Valeur, "DataSet1")