Это должно выглядеть примерно так ... Если тип данных, который я использовал, неверен, вы должны изменить их.Но основная концепция должна оставаться прежней.Дайте мне знать, как это происходит.
Create proc GetOrders
....,
@FirstDayOfMonth int,
@LastDayOfMonth int,
....
AS
DECLARE @SQL varchar(1000)
DECLARE @PARAMS nvarchar(100);
set @SQL='SELECT COUNT(*) FROM MyTable WHERE ShipDate >= @FirstDay_OfMonth AND ShipDate < @LastDay_OfMonth AND OrderType = 1';
if(@ExcludePhoneOrders = 1)
begin
set @SQL=@SQL + ' AND NOT OrderCode LIKE ''%3'' AND NOT OrderCode LIKE ''%4'''
end
SET @PARAMS = '@FirstDayOfMonth int, @LastDayOfMonth int'
EXECUTE sp_executesql @SQL, @PARAMS, @FirstDay_OfMonth = @FirstDayOfMonth, @LastDay_OfMonth=@LastDayOfMonth
GO