Ще направя предположение и ще кажа, че е „как“ предавате параметъра с множество стойности. Лично, когато се занимавам със SSRS, използвам изгледи, таблични функции или просто избирам, тъй като SSRS може да разбере естествено, че това:
Where thing in (@Thing)
Всъщност означава това в SSMS:
Where thing in (@Thing.Value1, @Thing.Value2, @Thing.Value3, etc...)
Предполагам, че вашата процедура приема низ, който всъщност е масив, разделен със запетая. Когато правите параметър, който приема масив от низове като '1,2,3,4' и адресирате процедурата с нещо като параметър 'Текст', приемащ множество стойности, които или указвате, или получавате от заявка, по същество трябва да ' Присъединете се към параметрите, ако вашата процедура приема стойност на низ, който съдържа масива. НАПРИМЕР:Процедурата, наречена dbo.test, се изпълнява, за да върне редове за стойности 1,2,4 за идентификатори на параметър, които се показват като:
exec dbo.test @ids = '1,2,4'
Ако исках да стартирам процедурата в SSRS с тази стойност и имах параметър с много стойности, наречен „IDS“, трябваше да сглобя масива ръчно във функция в SSRS като:
=JOIN(Parameters!IDS.Value, ",")
По същество указва на процедурата да изпълни параметър „IDS“ чрез обединяване на множеството стойности във верига от стойности, разделени със запетая. Правите това в набора от данни в левия панел, където се изброяват „Параметри“, вместо да посочите параметъра, тъй като е като [@IDS], вместо това щракнете върху „Fx“ и въведете функцията по-горе.
Поради тази причина аз съм голям привърженик на функциите за изгледи, селекции и таблици, тъй като можете да използвате логиката на предикатите, за да се погрижите за това.