2011-01-04 9 views
5

Questa sembra essere una domanda molto semplice, ma sto cercando di ottenere il 2 ° valore in un set di dati da visualizzare come valore di intestazione di una matrice.Ottieni il 2 ° valore nel set di dati in Reporting Services

In questo rapporto, diciamo che ho 2 set di dati. In Dataset1, ho una query che tira giù 3 valori per una selezione a discesa dei parametri. In Dataset2, restituisco un set di risultati e l'ho associato alla mia matrice.

All'interno della matrice, ho le mie colonne ripetute e quindi 3 colonne raggruppate aggiuntive a destra con i valori di aggregazione che desidero visualizzare. Sull'intestazione di queste 3 colonne, voglio visualizzare i 3 valori visualizzati nel set di dati Parametri. Nel contesto della matrice (e il suo set di dati), posso ottenere i primi e gli ultimi valori di un set di dati diverso (Dataset1 in questo caso) utilizzando:

=First(Fields!DateDisplay.Value, "Dataset1") 
=Last(Fields!DateDisplay.Value, "Dataset1") 

ho bisogno di ottenere qualcosa di simile:

=Second(Fields!DateDisplay.Value, "Dataset1") 

Come si disattiva questo senza violare le regole di ambito sulle colonne aggregate?

risposta

4

Per SSRS 2008 R2, è possibile eseguire questa operazione se ciascuna riga del set di dati dispone di una colonna identificatore utilizzando LookUp() function.

=LookUp(Fields!Row.Value,1,Fields!DateDisplay.Value,”Dataset1”) 
=LookUp(Fields!Row.Value,2,Fields!DateDisplay.Value,”Dataset1”) 
=LookUp(Fields!Row.Value,3,Fields!DateDisplay.Value,”Dataset1”) 

Se non si dispone di una colonna identificatore è possibile utilizzare ROW_NUMBER() per costruire uno in

Query:.

SELECT ROW_NUMBER() OVER(ORDER BY DateDisplay) AS Row, DateDisplay 
FROM Dates 

Risultati:

Row DateDisplay 
--- --------- 
1 June 1st  
2 March 12th  
3 November 15th 

H ere è un collegamento a un thread simile nei forum MSDN: Nth row element in a dataset SSRS

+0

Questo non è corretto: se si prova in SSRS 2008r2 viene visualizzato un errore che indica che la funzione di ricerca ha una quantità errata di parametri. Ci vogliono 4 non 3. Vorrei votare questo, ma non posso! – leinad13

+0

@ leinad13 Ho modificato la pubblicazione. Questo dovrebbe essere più chiaro ora. Il mio errore, mi dispiace per la confusione. – dotNetE

+2

@dotNetE Sembra che i parametri siano nell'ordine sbagliato, dovrebbe essere = LookUp (2, Fields! Row.Value, Fields! DateDisplay.Value, "Dataset1") – Automate

0

Se si utilizza SSRS-2012 o 2014, è necessario utilizzare sotto l'espressione.

=LookUp(AnyRowNumber, Fields!RowNumber.Value,Fields!DisplayField.Value,”DatasetName”) 

ho provato sopra di esso non funzionava nel mio caso.

Problemi correlati