web-dev-qa-db-fra.com

Comment obtenir le total des 10 meilleures ventes dans SSRS 2012

Je prends le Top 10 du volume des ventes groupé par catégories de produits dans SSRS 2012. J'ai besoin du total de ces 10 principaux, mais le total complet s'affiche. Je ne peux pas le faire au niveau du jeu de données car j'ai besoin du jeu de données complet pour les autres parties du rapport. J'ai essayé la solution comme indiqué dans MSDNlink mais cela n'a pas aidé non plus. Merci d'avance.

8
KrazzyNefarious

Ce type d’approche fonctionne réellement très bien.

Vous n'avez donné aucune idée de ce à quoi ressemblent vos données/métadonnées, mais les concepts peuvent être expliqués à l'aide d'un exemple simple. Considérez les données suivantes:

enter image description here

Nous allons faire un rapport simple basé sur ceci, groupé par la colonne grp:

enter image description here

Triez les groupes par valeur totale, du plus élevé au plus bas:

enter image description here

Pour obtenir le classement et le total cumulé, nous utilisons la fonction RunningValue .

Pour obtenir le classement du groupe, utilisez:

=RunningValue(Fields!grp.Value, CountDistinct, Nothing)

Pour obtenir l'utilisation totale courante:

=RunningValue(Fields!val.Value, Sum, Nothing)

Enfin, nous devons afficher un total pour les valeurs Top N; dans ce cas, j'affiche le top 2.

Pour la deuxième ligne de détail du groupe, utilisez le Visibilité de la ligne expression suivant:

=IIf(RunningValue(Fields!grp.Value, CountDistinct, Nothing) = 2, false, true)

En d’autres termes, n’affichez cette ligne que s’il ya eu deux groupes, c’est-à-dire le sommet 2. Vous pouvez modifier la valeur selon vos besoins.

Cela nous montre une ligne totale au besoin:

enter image description here

Vous devez appliquer ces concepts à vos données. Si vous rencontrez toujours des problèmes, je vous suggère d'essayer de reproduire mes résultats avec les données/codes ci-dessus pour vous assurer de bien comprendre tous les concepts en jeu.

Editer après le commentaire:

Dans les cas où il y a moins de N groupes mais que vous souhaitez toujours afficher le dernier total, vous devez ajouter une vérification supplémentaire à la rangée N premiers Visibilité de la rangée expression, par exemple:

=IIf(RunningValue(Fields!grp.Value, CountDistinct, Nothing) = 10
    or (RunningValue(Fields!grp.Value, CountDistinct, Nothing) = CountDistinct(Fields!grp.Value, "DataSet1") and CountDistinct(Fields!grp.Value, "DataSet1") < 10)
  , false
  , true)

Alors maintenant, l'expression montrera le pour la 10ème ligne, ou si le nombre total de groupes dans le DataSet est inférieur à 10, cela s'affichera pour la dernière ligne du groupe.

C'est un peu plus compliqué mais cela a fonctionné pour moi dans le passé; En fonction de vos données et de la configuration de vos rapports, vous devrez peut-être jouer avec Scope un peu pour que cela fonctionne dans votre environnement.

17
Ian Preston

Si vous avez juste besoin d'un total pour le top 10 et non d'un total cumulé, vous pouvez filtrer votre tableau par N principales catégories de produit et trier votre groupe de catégories de produits par SalesVolume Z en A. 

Par exemple, j'ai un tableau des commandes et des sous-totaux. Je montre le top 10 total le plus élevé 

top 10 sales

J'ai trié par groupe SalesOrderID par ordre décroissant de ma valeur (TotalDue). Ensuite, j'ai filtré ma table pour qu'elle ne contienne que les 10 meilleurs SalesOrderID.

enter image description here

Si vous avez beaucoup de données, vous devrez peut-être voir comment cela se passe, car je pense que le filtre de table se produit au moment de l'exécution.

7
mmarie

Je pense avoir trouvé un moyen facile de le faire. J'avais beaucoup de "Sommes" dans mon rapport et je ne comprenais pas la façon dont vous avez répondu. J'ai découvert un groupe parent du groupe Détails et l'ajout d'une ligne totale en dehors des Détails. Ensuite, j'ai caché le groupe Detais et le groupe total vient de faire les sommes et, dans les propriétés du groupe, il suffisait de filtrer les dernières lignes de la somme et de trier Z à A la somme. Tout cela a bien fonctionné et a été fait dans les propriétés du groupe! Dans le tableau, Poperties ne montre que 3 ou 4 lignes ...

0
ALourenço