Jest kilka sposobów na rozwiązanie tego problemu. Najłatwiej byłoby zmodyfikować procedurę składowaną, aby umożliwić bezpośrednie filtrowanie zestawu wyników, ale zakładam, że z jakiegoś powodu nie możesz tego zrobić.
Musisz wtedy przechowywać wyniki procedury składowanej w tabeli/tabeli tymczasowej, tak jak poniżej:
DECLARE @tablevar table(col1,..
INSERT INTO @tablevar(col1,..) exec MyStoredProc 'param1', 'param2'
SELECT col1, col2 FROM @tablevar WHERE col1 = 'abc'
EDYTUJ:Jeśli możesz edytować podzapytanie:
Stara przechowywana procedura:...SELECT*FROMMojaTabelaWHERECol1 =@parametr1 ANDCol2 =@parametr2
Nowa przechowywana procedura:
....
SELECT
*
FROM
(SELECT
*
FROM
MyTable
WHERE
Col1 = @param1 AND
Col2 = @param2
) a
WHERE
Col3 = FilterRule1
ale może nie rozumiem całkowicie twojego zapisanego procesu tutaj. Tabela tymczasowa tutaj nie jest tak naprawdę najbardziej wydajnym rozwiązaniem i może być trochę kłopotliwa, ale jeśli działa, to idź z nią, ale mam problem z wyobrażeniem sobie sytuacji, w której nie można po prostu zmodyfikować zapisanego procesu, aby użyj podzapytania zamiast tabeli tymczasowej.