Le calcul des totaux de totaux du groupe dans Reporting Services
J'ai des données regroupées dans un tableau en fonction de certains critères, et pour chaque groupe, il est calculé une moyenne —eh bien, le cas réel est un peu plus compliqué de les valeurs de chacune des lignes de détails qui appartiennent à ce groupe. Cette moyenne est affiché dans chaque groupe de lignes de pied de page. Voyons cet exemple simple:
Ce que je veux maintenant, c'est de montrer un grand total sur la pied de tableau. Le montant total doit être calculé par ajoutant chaque moyen du groupe (par exemple, dans cet exemple, le montant total doit être de 20 + 15 = 35). Cependant, je ne peux pas imbriquer des fonctions d'agrégation. Comment puis-je faire?
OriginalL'auteur Auron | 2008-10-17
Vous devez vous connecter pour publier un commentaire.
Reporting Services (2005, peut-être en 2008, aussi) ne prennent pas en charge les agrégats d'agrégats directement.
Utiliser un rapport personnalisé à l'assemblée, le code des références et des objets nommés (Propriétés de Rapport, les Références qui vous permettent d'agréger les valeurs vous-même.
Votre code pourrait ressembler à ceci:
Nom de référence par exemple DoubleAggregator. Puis remplacez les expressions de groupe avec "du Code.DoubleAggregator.Agrégation(Avg(Champs!Colonne2.Valeur))" et l'expression Totale avec "du Code.DoubleAggregator.Sum()".
Veuillez noter que vous ne pouvez pas placer le résumé des calculs dans un tableau de pied que ses valeurs sont calculées de manière statique "avant" la table est traitée. Je vous recommande d'utiliser une autre table de style similaire avec seulement des lignes statiques pour le résumé.
Cela fonctionne pour vous? Peut-être que je ne comprends pas votre commentaire.
FYI - agrégats d'Agrégats est pris en charge en 2008 R2
OriginalL'auteur user33675
Vous avez juste besoin d'ajouter la fonction SUM() dans le pied de tableau qui est à l'extérieur de la portée de ces deux groupes et somme tous ensemble. Si vous le résumer à une condition, vous devrez peut-être mettre ça dedans aussi.
OriginalL'auteur Potbelly Programmer
Malheureusement, je suis loin de ma reporting développement de la boîte à l'instant, mais c'est soit:
=(somme(Champs!Colonne1 + somme(Champs!Colonne2))
OU
=SUM(sum(Champs!Colonne1) + somme(Champs!Colonne2))
Je suis sûr que c'est le premier de la 2.
OriginalL'auteur Pulsehead
Vous ne pouvez pas vraiment, mais vous pouvez vous tromper. Je blooged une solution à ce ici:
http://dataqueen.unlimitedviz.com/2011/05/ssrs-aggregate-last-ytd-or-last-child-value-in-an-ssas-query/
OriginalL'auteur Martina White
vous pouvez simplement faire comme suit:
Somme(CInt(Champs!TestValue.Valeur))
ou Somme(CInt(Champs!DollarAmountOfCheck.Valeur),"DataSet1")
parfois, lorsque les données sont à venir via WCF, il n'accepte pas la fonction Sum (). mais cela fonctionne très bien dans ce cas.
OriginalL'auteur Soma Sarkar