sql >> Base de Datos >  >> RDS >> Sqlserver

Filtro de parámetros de valores múltiples de SSRS basado en el conjunto de datos

Decidí escribir mi comentario sobre su respuesta, M.Ali, como respuesta a mi propia pregunta, ya que encontré una manera de resolver esto. Tal vez no expliqué mi problema con suficiente precisión. Soy consciente de cómo funciona lo anterior y cómo pasar parámetros basados ​​en un conjunto de datos, a través de SQL para crear otro conjunto de datos, se permiten múltiples valores o no. ¡Sin embargo, aprecio tu respuesta!

El problema que tengo es que la consulta que definiría mi lista de valores para el parámetro y la consulta para el conjunto de datos real son las mismas. Y es una consulta ENORME. En otras palabras, donde dice 'TABLA' en el ejemplo de código, tengo varios cientos de líneas de código. Y mi objetivo era que toda esta consulta no definiera ambos conjuntos de datos. Si en el futuro tengo que cambiar la consulta, tendría que hacerlo en más de un lugar. Así es como lo resolví:

Coloqué la consulta principal en un conjunto de datos compartido en lugar de incrustarlo en mi informe. Y luego agregué una función número_fila a mi consulta así:

SELECT ID, Value, UserID, rn = ROW_NUMBER() OVER(PARTITION BY UserID ORDER BY UserID)
FROM *my huge query*

Esto significa que solo hay una fila 'rn =1' por ID de usuario. Luego volví a mi informe. Mi DataSet1 original solo apuntaría al conjunto de datos compartido. El DataSet2 (el parámetro uno) también apuntaría al conjunto de datos compartido con la única diferencia de que agregué un filtro a ese conjunto de datos que dice 'rn =1'. Luego hice un parámetro con 'permitir valores múltiples' que tomó sus valores de DataSet2. Y funciona como un encanto. De esta manera, puedo ir al conjunto de datos compartido cuando necesito actualizar la consulta, ¡y tanto DataSet1 como DataSet2 se actualizarán en consecuencia!

Éxito :)

De nuevo, ¡gracias por tu respuesta!