marjan_gh
دوشنبه 12 اسفند 1392, 11:00 صبح
من یه تابع نوشتم
ALTER FUNCTION [dbo].[fun_Total_Rate](
@product_id int
-- Add the parameters for the function here
)
RETURNS float
AS
BEGIN
declare @num int ,@number int,@x float,@productId int,@conToFloat1 float,@conToFloat2 float
set @conToFloat1=5
set @conToFloat2=20
set @productId =@product_id
set @num = ( select count(productId)from tblrate where productId=@productId )
set @num=@num/4
select @number = (SELECT sum (rateAmunt ) from tblRate where productId=@productId)
set @x=cast((@number*@conToFloat1)as float)/cast((@num* @conToFloat2) as float)
RETURN @x
END
بعدش اومدم اینجوری صداش کردم
ALTER PROCEDURE [dbo].[sp_rate_speciice_Product]@productid int
AS
BEGIN
declare @x float
SET NOCOUNT ON;
select @x=dbo.fun_Total_Rate(@productid)
-- return @x
END
بعد از اجرا با اینکه همه متغیر هارو اومدم float گرفتم ولی این شده خروجیم
DECLARE @return_value int]
EXEC @return_value = [dbo].[sp_rate_speciice_Product
@productid = 1
SELECT 'Return Value' = @return_value
GO
خوب حالا مشکل اینه که همونطوری که در خروجی می بینین یه متغیر خروجی از نوع int داره که مقدار رو روند می کنه و می ریزه توش
دوستان خیلی گیرم یه کمکی:گریه:
ALTER FUNCTION [dbo].[fun_Total_Rate](
@product_id int
-- Add the parameters for the function here
)
RETURNS float
AS
BEGIN
declare @num int ,@number int,@x float,@productId int,@conToFloat1 float,@conToFloat2 float
set @conToFloat1=5
set @conToFloat2=20
set @productId =@product_id
set @num = ( select count(productId)from tblrate where productId=@productId )
set @num=@num/4
select @number = (SELECT sum (rateAmunt ) from tblRate where productId=@productId)
set @x=cast((@number*@conToFloat1)as float)/cast((@num* @conToFloat2) as float)
RETURN @x
END
بعدش اومدم اینجوری صداش کردم
ALTER PROCEDURE [dbo].[sp_rate_speciice_Product]@productid int
AS
BEGIN
declare @x float
SET NOCOUNT ON;
select @x=dbo.fun_Total_Rate(@productid)
-- return @x
END
بعد از اجرا با اینکه همه متغیر هارو اومدم float گرفتم ولی این شده خروجیم
DECLARE @return_value int]
EXEC @return_value = [dbo].[sp_rate_speciice_Product
@productid = 1
SELECT 'Return Value' = @return_value
GO
خوب حالا مشکل اینه که همونطوری که در خروجی می بینین یه متغیر خروجی از نوع int داره که مقدار رو روند می کنه و می ریزه توش
دوستان خیلی گیرم یه کمکی:گریه: