sql >> Databáze >  >> RDS >> Sqlserver

Filtr parametrů SSRS Multiple Value založený na datové sadě

Rozhodl jsem se napsat svůj komentář k vaší odpovědi, M.Ali, jako odpověď na svou vlastní otázku, protože jsem našel způsob, jak to vyřešit. Možná jsem svůj problém nevysvětlil dostatečně přesně. Jsem si vědom toho, jak výše uvedená věc funguje a jak předat parametry založené na jedné datové sadě, dolů přes SQL, aby se vytvořila další datová sada, více hodnot je povoleno nebo ne. Oceňuji vaši odpověď!

Problém, který mám, je, že dotaz, který by definoval můj seznam hodnot pro parametr, a dotaz na aktuální datovou sadu, jsou stejné. A je to VELKÝ dotaz. Jinými slovy, tam, kde je v ukázce kódu napsáno 'TABLE', mám několik stovek řádků kódu. A mým cílem bylo, aby celý tento dotaz nedefinoval obě datové sady. Pokud bych v budoucnu musel změnit dotaz, musel bych to udělat na více než jednom místě. Zde je návod, jak jsem to vyřešil:

Hlavní dotaz jsem umístil do sdílené datové sady, místo abych jej vložil do své sestavy. A pak jsem do svého dotazu přidal funkci row_number takto:

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

To znamená, že na každé ID uživatele je pouze jeden řádek „rn =1“. Pak jsem se vrátil ke své zprávě. Moje původní DataSet1 by pak jen ukazovala na sdílenou datovou sadu. DataSet2 (parametr jedna) by také ukazoval na sdílenou datovou sadu s jediným rozdílem, že jsem do této datové sady přidal filtr, který říká 'rn =1'. Poté jsem vytvořil parametr s „povolit více hodnot“, který převzal své hodnoty z DataSet2. A funguje to jako kouzlo. Tímto způsobem mohu přejít na sdílenou datovou sadu, když potřebuji aktualizovat dotaz, a DataSet1 i DataSet2 budou odpovídajícím způsobem aktualizovány!

Úspěch :)

Ještě jednou děkuji za vaši odpověď!



  1. Nesprávná hodnota data a času Chyba databáze číslo:1292

  2. Změna mysql ft_min_word_len na ubuntu nefunguje

  3. Příklad připojení JavaFX MySQL prosím

  4. Erlang a jeho spotřeba paměti haldy