Я новичок в этом, поэтому заранее прошу прощения, если я не следовал протоколу форума!
Я пытаюсь создать функцию в T-SQL, которая вычисляет GST цены продукта на основе двух параметров; ProductID
и GST_Percentage
(что составляет 10%).
Если вы посмотрите изображение, приложенное к моим текущим результатам, вы увидите мою проблему. Я ожидаю, что будет возвращена одна запись, так как я только ввел одну ProductID
в качестве входного параметра, НО вместо этого возвращаются все записи в таблице И ожидаемый рассчитанный GST для введенной ProductID
является верным, но он также отображается для всех нежелательных записей.
Я часами пытался понять, что я делаю неправильно, но, похоже, не смог понять. Пожалуйста, помогите
CREATE FUNCTION fn_CalculateGST
(@ProductID INT,
@GST_Percentage FLOAT)
RETURNS MONEY
AS
BEGIN
DECLARE @Price MONEY
SET @Price = (SELECT Price
FROM Products
WHERE ProductID = @ProductID)
RETURN @Price * @GST_Percentage
END
GO
Ниже приведен оператор SELECT
, который я использовал для проверки функции.
SELECT
ProductID, ProductDescription,
Price, dbo.fn_CalculateGST(1, 0.10) AS GST
FROM
Products
Результаты вывода:
