2011-01-04 19 views
5

Parece ser una pregunta muy simple, pero estoy tratando de obtener el 2º valor en un conjunto de datos para que se muestre como el valor del encabezado de la matriz.Obtener el 2º valor en el conjunto de datos en Reporting Services

En este informe, digamos que tengo 2 conjuntos de datos. En Dataset1, tengo una consulta que extrae 3 valores para una selección desplegable de parámetros. En Dataset2, devuelvo un conjunto de resultados y lo he vinculado a mi matriz.

Dentro de la matriz, tengo mis columnas que se repiten, y luego 3 columnas agrupadas adicionales a la derecha que tienen los valores de aggrigate que quiero mostrar. En el encabezado de esas 3 columnas, quiero mostrar los 3 valores que se muestran en mi conjunto de datos Parameters. En el contexto de la matriz (y su conjunto de datos), puedo conseguir los valores primero y último de un conjunto de datos diferente (DataSet1 en este caso) mediante el uso de:

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

tengo que conseguir algo como:

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

¿Cómo puedo lograr esto sin violar las reglas de alcance en columnas agregadas?

Respuesta

4

Para SSRS 2008 R2, puede hacer esto si cada fila de su conjunto de datos tiene una columna de identificador utilizando el 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”) 

Si usted no tiene una columna de identificador puede utilizar ROW_NUMBER() para construir una en

consulta:.

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

Resultados:

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

H Hay un enlace a un hilo similar en los foros de MSDN: Nth row element in a dataset SSRS

+0

Esto es incorrecto: si prueba esto en el SSRS 2008r2, se produce un error que indica que la función de búsqueda tiene una cantidad incorrecta de parámetros. Se necesitan 4, no 3. ¡Votaría esto, pero no puedo! – leinad13

+0

@ leinad13 He editado la publicación. Esto debería ser más claro ahora. Mi error, lo siento por la confusión. – dotNetE

+2

@dotNetE Parece que tiene los parámetros en el orden incorrecto, debe ser = LookUp (2, Fields! Row.Value, Fields! DateDisplay.Value, "Dataset1") – Automate

0

Si está utilizando SSRS-2012 o 2014, entonces tiene que usar la expresión siguiente.

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

me han tratado anteriormente no estaba trabajando en mi caso.

Cuestiones relacionadas