У меня есть следующий 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 #?