Нет очевидных причин делать то, что вы здесь делаете, используя представление или sp_executesql
.
Должно работать следующее:
DECLARE @MAX INT
DECLARE @YEAR INT
DECLARE @MONTH INT
SET @YEAR = 2004
SET @MONTH = 02
SELECT @MAX = MAX(DATEPART(DAY,CurrencyRateDate))AS CurrencyRateDate FROM Sales.CurrencyRate
WHERE
DATEPART(YEAR,CurrencyRateDate)=@YEAR
AND
DATEPART(MONTH,CurrencyRateDate)= @MONTH
и показывать результат:
SELECT @MAX
Если это не то, что вы пытаетесь сделать, возможно, вы могли бы отредактировать вопрос и уточнить?