Zgadnę i powiem, że to „jak” przekazujesz parametr wielowartościowy. Osobiście, gdy mam do czynienia z SSRS, używam widoków, funkcji tabel lub po prostu wybiera, ponieważ SSRS może natywnie zrozumieć, że to:
Where thing in (@Thing)
W rzeczywistości oznacza to w SSMS:
Where thing in (@Thing.Value1, @Thing.Value2, @Thing.Value3, etc...)
Zgaduję, że twój proc bierze ciąg, który jest w rzeczywistości tablicą oddzieloną przecinkami. Kiedy wykonujesz parametr, który przyjmuje tablicę ciągów, taką jak „1,2,3,4” i adresujesz procedurę za pomocą parametru „Tekst”, który akceptuje wiele wartości, które określasz lub otrzymujesz z zapytania, zasadniczo musisz „ Join' parametrów, jeśli twoja procedura przyjmuje wartość łańcucha, który zawiera tablicę. EG:Procedura o nazwie dbo.test wykonuje się, aby zwrócić wiersze dla wartości 1,2,4 dla identyfikatorów parametrów są pokazane w następujący sposób:
exec dbo.test @ids = '1,2,4'
Gdybym chciał uruchomić proc w SSRS z tą wartością i miałbym parametr wielowartościowy o nazwie „IDS”, musiałbym ręcznie złożyć tablicę w funkcji w SSRS, takiej jak:
=JOIN(Parameters!IDS.Value, ",")
Zasadniczo mówiąc proc, aby uruchomił parametr „IDS”, łącząc ze sobą wiele wartości w łańcuch wartości oddzielonych przecinkami. Robisz to w zestawie danych w lewym okienku, gdzie znajduje się lista „Parametry” zamiast określania parametru, ponieważ jest to tak, jakby [@IDS] zamiast tego klikałeś „Fx” i wstawiasz powyższą funkcję.
Z tego powodu jestem wielkim zwolennikiem widoków, wyborów i funkcji tabel, ponieważ możesz użyć logiki predykatów, aby się tym zająć.