SSRS: Comment faire une somme qui ne comprend que le dernier élément dans un groupe
J'ai un rdlc fichier de rapport, et je suis en train de faire un somme qui ne peut inclure le dernier élément de chaque groupe. J'ai une table un peu comme ceci:
Place = ? (Group header 1)
User = ? (Group header 2)
Date =Last(Fields!Number.Value) (Group header 3)
Number =Fields!Number.Value (Detail row)
Donc, en d'autres termes, dans User
là, je veux une somme de Date
... si cela avait un sens...
La Number
lignes contiennent de nombreux numéros par Date
. Mais Date
affiche seulement le dernier numéro de la journée, parce que le reste ne compte pas (mais doit être affiché) Dans User
je veux résumer ces derniers chiffres pour toutes les dates pour cet utilisateur. Et même avec Place
(qui serait la somme de tous les dernier nombre pour chaque jour, pour chaque utilisateur).
Quelqu'un pourrait-il m'aider? J'ai essayé de l'évident (pour moi au moins) =Sum(Last(Fields!Number.Value))
, mais (aussi essayé de préciser le groupe dans ces fonctions, mais n'a pas fait une différence parce que) j'obtiens une erreur lorsque j'essaie de compiler qui dit:
L'expression de Valeur pour le champ de texte "numberTextbox" contient une fonction d'agrégation (ou RunningValue ou RowNumber fonctions) dans l'argument d'une autre fonction d'agrégation (ou RunningValue). Les fonctions d'agrégation ne peut pas être imbriquées à l'intérieur d'autres fonctions d'agrégation.
Qui, j'imagine, genre de logique... mais comment dois-je faire ensuite?
Mise à jour:, j'ai résolu le problème en ajoutant une autre colonne, et la copie de ces derniers chiffres dans la colonne. De cette façon, je peux afficher tous les nombres, et de faire la synthèse sur la colonne qui ne contient que ceux qui vont être dans la somme. Je suis toujours très curieux de savoir si quelqu'un a une solution à mon problème... donc merci de poster une réponse si vous en avez!
- Comment avez-vous Copier les derniers chiffres dans la colonne? J'ai aussi un Groupe de lignes. Serait-ce à résoudre le problème? Merci
Vous devez vous connecter pour publier un commentaire.
Pas sûr de comprendre exactement ce que vous essayez de faire. Peut-être quelque chose comme =Dernière(Champs!Numéro.Valeur, Le"Groupe 1") + Dernière(Champs!Numéro.Valeur, Le"Groupe 2") + Dernière(Champs!Numéro.Valeur, le"Groupe 3"), au lieu d'utiliser une fonction somme?
la meilleure façon de le faire serait de modifier votre jeu de données pour inclure uniquement les enregistrements de votre affiche dans le champ de la date, de cette façon, vous pouvez simplement utiliser une simple somme() au lieu d'essayer de faire quelque chose de bizarre et tordu et peut ne pas fonctionner.
La modification de l'ensemble de données peut vraiment être la solution la plus simple, mais si vous avez vraiment envie de le faire, sans pour autant compliquer la requête que vous pourriez essayer "agrégation personnalisée".
L'exacte des techniques pour que cela dépend de la version de SSR, et ma compréhension est qu'il n'a pas vraiment fonctionné bien avant de SSRS 2008.
L'idée est que, vous écrivez du code personnalisé pour maintenir un tableau contenant la dernière valeur pour chaque date. Une fonction met à jour la "dernière valeur" pour une date, et un autre à la somme des valeurs du tableau. Votre en-tête d'appels la fonction de celui-ci; vous concourent à cause de l'ancienne fonction qui doit être appelée une fois pour chaque ligne de détail avant de l'en-tête est traitée.
Voici un blog avec une écriture-up qui explique la technique dans SSRS 2008.
Il donne également un aperçu de la façon dont vous pouvez essayer de faire ce travail dans SPR 2005, mais apparemment ce n'est pas aussi fiable.