Использование переменной SQL в параметризованном запросе - PullRequest
0 голосов
/ 25 октября 2019

У меня есть следующий SQL-агрегат в моем SELECT:

SUM(CASE WHEN Cases.ClosedQuarterId IS NULL OR ClosedQuarter.Year > (SELECT Q1.Year FROM Quarter AS Q1 WHERE Q1.QuarterId = @0) THEN 1 ELSE 0 END) AS CurrentYearActiveCount

, где @0 - это параметр, переданный через мой метод Execute в C # (с использованием PetaPoco). Однако я не могу этого сделать, потому что появляется ошибка SQL:

Невозможно выполнить агрегатную функцию для выражения, содержащего агрегат или подзапрос.

Поэтому я попытался создать следующую декларацию SQL, чтобы обойти ее:

DECLARE @CurrentYear int;
SET @CurrentYear = (SELECT Q1.Year FROM Quarter AS Q1 WHERE Q1.QuarterId = @0);

Но тогда, когда я пытаюсь это сделать, он жалуется, что @CurrentYear не был объявлен в моих параметрах.

Так долгоКороче говоря, как мне создать переменную SQL, которая не будет конфликтовать с моим параметризованным запросом C #?

...