2016-04-12 30 views
0

Aşağıdaki gibi bir işlev oluşturmaya çalışıyorum, esasen iki para değeri için sorgulamam gerekiyor ve sonra bunları bir araya getirip sonucu döndürmem gerekiyor. Mümkün mü?SQL işlevinde iki sorgu ekleme

Teşekkür

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][email protected] AND [email protected] AND [email protected] AND [email protected] AND [email protected] AND [email protected] and [email protected] ORDER BY price 
+ 
SELECT TOP 1 addonpricevalue FROM [dbWebsiteLO3-PRICING].[dbo].[AddonPrices] WHERE VehicleType=1 AND [email protected] AND [email protected] AND [email protected] 
) 
END 

GO 
+0

Seçimlerin kendisinde (SELECT ..) + (SELECT ...) etrafında parantez eklemek yeterli olur mu? –

+0

Teşekkürler Allan, bu yaptı! Aptal bir hata. – Ben

cevap

0

böyle deneyin ..

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][email protected] AND [email protected] AND [email protected] AND [email protected] AND [email protected] AND [email protected] and [email protected] ORDER BY price) 
+ 
(SELECT TOP 1 addonpricevalue FROM [dbWebsiteLO3-PRICING].[dbo].[AddonPrices] WHERE VehicleType=1 AND [email protected] AND [email protected] AND [email protected]) 

return @variable 

END 

GO 
0

Bu daha az kod ile yapılır, ancak bu size genel bir fikir verir edilebilir: öyle değil misiniz

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()