Вы можете использовать любой из этих 2 подходов:
1) Определить каждый параметр как скалярную переменную.
DECLARE @IncludingCargoPrice BIT = (SELECT IncludingCargoPrice FROM [dbo].fn_Parameter())
DECLARE @IncludingProductKdv BIT = (SELECT IncludingProductKdv FROM [dbo].fn_Parameter())
SELECT
dbo.fn_CalculatePrice(
p.Price,
p.CargoPrice,
p.Factor,
p.PointRatio,
null,
p.OperactivePromoCode,
@IncludingCargoPrice,
@IncludingProductKdv) AS Price
From
Product as p
2) SELECT
непосредственно в вашем запросе (необходимо убедиться, что таблица параметров содержит только одну строку, иначе функция будет применяться несколько раз для каждого продукта по строке параметра). Вы можете фильтровать строки с помощью WHERE
или с условием в INNER JOIN
(вместо CROSS JOIN
, которое я написал в качестве примера).
SELECT
dbo.fn_CalculatePrice(
p.Price,
p.CargoPrice,
p.Factor,
p.PointRatio,
null,
p.OperactivePromoCode,
X.IncludingCargoPrice,
X.IncludingProductKdv) AS Price
From
Product as p
CROSS JOIN [dbo].fn_Parameter() AS X