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,这样做了!愚蠢的错误。