Sql server 在SQL函数中添加两个查询
我试图创建一个如下所示的函数,本质上我需要查询两个货币值,然后将它们相加并返回结果。可能吗 谢谢Sql server 在SQL函数中添加两个查询,sql-server,Sql Server,我试图创建一个如下所示的函数,本质上我需要查询两个货币值,然后将它们相加并返回结果。可能吗 谢谢 CREATE function [dbo].[fn_manualpricing2-NEW](@type varchar(50),@capid int,@milespa int, @maintained bit, @term int, @product varchar(50), @funder varchar(50)) returns money as BEGIN RETURN ( SELECT T
CREATE function [dbo].[fn_manualpricing2-NEW](@type varchar(50),@capid int,@milespa int, @maintained bit, @term int, @product varchar(50), @funder varchar(50))
returns money
as
BEGIN
RETURN (
SELECT TOP 1 price FROM tblPricing WHERE [type]=@type AND term=@term AND milespa=@milespa AND capid=@capid AND maintained=@maintained AND source=@funder and product=@product ORDER BY price
+
SELECT TOP 1 addonpricevalue FROM [dbWebsiteLO3-PRICING].[dbo].[AddonPrices] WHERE VehicleType=1 AND term=@term AND miles=@milespa AND source=@funder
)
END
GO
像这样试试
CREATE function [dbo].[fn_manualpricing2-NEW](@type varchar(50),@capid int,@milespa int, @maintained bit, @term int, @product varchar(50), @funder varchar(50))
returns money
as
BEGIN
DECLARE @variable money
SET @variable = (SELECT TOP 1 price FROM tblPricing WHERE [type]=@type AND term=@term AND milespa=@milespa AND capid=@capid AND maintained=@maintained AND source=@funder and product=@product ORDER BY price)
+
(SELECT TOP 1 addonpricevalue FROM [dbWebsiteLO3-PRICING].[dbo].[AddonPrices] WHERE VehicleType=1 AND term=@term AND miles=@milespa AND source=@funder)
return @variable
END
GO
这可以用更少的代码完成,但这给了您一个大致的想法:
CREATE FUNCTION dbo.ufn_AddTwoValues()
RETURNS Money
WITH EXECUTE AS CALLER
AS
-- place the body of the function here
BEGIN
DECLARE @ValOne money;
DECLARE @ValTwo money;
DECLARE @Result money;
SET @ValOne = (SELECT 1);
SET @ValTwo = (SELECT 2);
SET @Result = @ValOne + @ValTwo;
RETURN @Result;
END
GO
select dbo.ufn_AddTwoValues()
在selects本身(SELECT…)+(SELECT…)周围添加括号难道还不够吗?谢谢Allan,这样做了!愚蠢的错误。