Come ottenere il totale delle prime 10 vendite in SSRS 2012

Sto prendendo la Top 10 del volume delle vendite raggruppato per categorie di prodotti in SSRS 2012. Ho bisogno del totale di questi primi 10 ma mostra il totale completo. Non posso farlo sul livello di set di dati in quanto ho bisogno del set di dati completo per le altre parti nel report. Ho provato la soluzione come fornita in MSDNlink, ma questo non ha aiutato neanche. Grazie in anticipo.

Questo tipo di approccio funziona davvero molto bene.

Non hai idea di quali siano i tuoi dati / metadati, ma i concetti possono essere spiegati con un semplice esempio. Considera i seguenti dati:

inserisci la descrizione dell'immagine qui

Faremo un semplice rapporto basato su questo, raggruppato dalla colonna grp :

inserisci la descrizione dell'immagine qui

Ordina i gruppi per val totale, dal più alto al più basso:

inserisci la descrizione dell'immagine qui

Per ottenere il rango di corsa e il totale parziale , usiamo la funzione RunningValue .

Per ottenere il rango di gruppo, utilizzare:

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

Per ottenere il totale parziale di utilizzo:

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

Infine, dobbiamo visualizzare un totale per i valori Top N; in questo caso sto visualizzando i primi 2.

Per la seconda riga di dettaglio del gruppo, utilizzare la seguente espressione Visibilità riga :

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

Cioè, visualizza questa riga solo quando ci sono stati due gruppi, ovvero il secondo. È ansible modificare il valore come richiesto.

Questo ci mostra una riga totale come richiesto:

inserisci la descrizione dell'immagine qui

Devi applicare questi concetti ai tuoi dati. Se hai ancora problemi, ti suggerisco di provare a replicare i miei risultati con il codice / codice sopra riportato per assicurarti di comprendere tutti i concetti coinvolti.

Modifica dopo commento:

Per le situazioni in cui ci sono meno di N gruppi ma si desidera comunque visualizzare l’ultimo totale, è necessario aggiungere un controllo extra all’espressione Visibilità riga in riga N superiore, ad esempio:

 =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) 

Quindi ora l'espressione mostrerà la riga per la decima riga, o se il numero totale di gruppi nel DataSet è inferiore a 10, verrà visualizzato per l'ultima riga di gruppo.

È un po 'più complicato ma ha funzionato per me in passato; a seconda dei dati e della configurazione del rapporto, potrebbe essere necessario giocare un po 'con l' ambito per farlo funzionare nel proprio ambiente.

Se hai solo bisogno di un totale per i primi 10 e non di un totale parziale, puoi filtrare il tuo tavolo per N ProductCategory e ordinare il gruppo ProductCategory per SalesVolume Z a A.

Ad esempio, ho una tabella di ordini di vendita e subtotali. Sto mostrando il 10 più alto totale

le prime 10 vendite

Ho ordinato per gruppo SalesOrderID decrescente per il mio valore (TotalDue). Quindi ho filtrato la mia tabella in modo che mostri solo i 10 ordini di vendita principali.

inserisci la descrizione dell'immagine qui

Se si dispone di molti dati, potrebbe essere necessario vedere come si comporta poiché penso che il filtro della tabella avvenga in fase di esecuzione.

Penso di aver trovato un modo semplice per farlo. Ho avuto molte “somme” nel mio rapporto e non ho potuto capire il modo in cui hai risposto. Il modo in cui ho trovato era quello di creare un gruppo principale del gruppo Dettagli e aggiungere una riga totale al di fuori dei dettagli. Poi ho nascosto il gruppo Detais e il gruppo totale ha appena fatto i Sum e nelle proprietà del gruppo solo per filtrare le prime N righe di Sum finali e ordinare per Z a A il Sum. Tutto ciò ha funzionato bene ed è stato fatto nelle Proprietà del gruppo! Nella finestra Tablix mostra solo 3 o 4 righe …