Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SSRS Filtr parametrów wielu wartości oparty na zbiorze danych

Postanowiłem napisać komentarz do Twojej odpowiedzi, M.Ali, jako odpowiedź na moje własne pytanie, ponieważ znalazłem sposób na rozwiązanie tego problemu. Może nie wyjaśniłem wystarczająco dokładnie swojego problemu. Wiem, jak działa powyższa rzecz i jak przekazywać parametry na podstawie jednego zestawu danych, przez SQL, aby utworzyć inny zestaw danych, z wieloma wartościami dozwolonymi lub nie. Doceniam twoją odpowiedź!

Problem, jaki mam, polega na tym, że zapytanie, które definiuje moją listę wartości parametru, i zapytanie dotyczące rzeczywistego zestawu danych, są takie same. I to jest OGROMNE zapytanie. Innymi słowy, gdzie w przykładowym kodzie jest napisane 'TABLE', mam kilkaset wierszy kodu. Moim celem było, aby całe zapytanie nie definiowało obu zestawów danych. Gdybym miał w przyszłości zmienić zapytanie, musiałbym to zrobić w więcej niż jednym miejscu. Oto jak to rozwiązałem:

Umieściłem główne zapytanie w udostępnionym zestawie danych, zamiast osadzić je w moim raporcie. I następnie dodałem funkcję row_number do mojego zapytania w następujący sposób:

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

Oznacza to, że na jeden identyfikator użytkownika przypada tylko jeden wiersz „rn =1”. Potem wróciłem do mojego raportu. Mój oryginalny DataSet1 po prostu wskazywałby na udostępniony zestaw danych. DataSet2 (parametr jeden) również wskazywałby na udostępniony zestaw danych z tą różnicą, że dodałem filtr do tego zestawu danych, mówiąc „rn =1”. Następnie utworzyłem parametr z „zezwól na wiele wartości”, który pobierał swoje wartości z DataSet2. I działa jak urok. W ten sposób mogę po prostu przejść do udostępnionego zbioru danych, gdy potrzebuję zaktualizować zapytanie, a zarówno DataSet1 jak i DataSet2 zostaną odpowiednio zaktualizowane!

Sukces :)

Jeszcze raz dziękuję za odpowiedź!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wycofanie błędu zgłaszania zagnieżdżonych transakcji w TSQL

  2. Jak połączyć dane z wielu wierszy w jeden?

  3. SqlDataAdapter.Fill() — Przepełnienie konwersji

  4. 3 sposoby na uzyskanie typu danych kolumny w SQL Server (T-SQL)

  5. Dziennik transakcji SQL Server, część 1:Podstawy rejestrowania