ورود

View Full Version : محاسبه یک مبلغ بین بازه های محتلف



baran_2005
دوشنبه 17 مهر 1396, 13:28 عصر
سلام
من یک حدول دارم به صورت بازه ای یعنی نام فیلدام from , to , price که به صورت 1 تا 50 مبلغ 1000 - 51 تا 100 مبلغ 2500 - 101 تا 2000 مبلغ 3000 حالا من یک پروسیژر میحوام که وقتی عدد مثلا 200 بهش میدم تو این رنج هایی که هست بشکنه یعنی 50 تا اولیش + 50 تا دوم + 100 تا سوم که میشه مجموع مبالغ بالا
حالا اگر بهش بدم 53 بعنی 50*1000 + 3*2500
یکی راهنمایی کنه چطوری این کار میشه انجام داد

baran_2005
چهارشنبه 19 مهر 1396, 09:19 صبح
نمی خواستم با cursor بنویسم ولی هیچ راه حلی ندادین :چشمک: اینم پروسیژر





Create function dbo.CalcPrice (@Count float)
RETURNS
numeric(18,0)
as
begin
declare @from float,@to float , @price numeric(18,0),@Out numeric(18,0),@to_befor float
set @out=0
set @to_befor=0
DECLARE cur1 CURSOR FOR
SELECT [from], [to],price FROM Tb1
OPEN cur1
FETCH NEXT FROM cur1 into @from,@to,@price
WHILE @@FETCH_STATUS = 0
BEGIN
if(@Count>=@to )
set @Out=@Out+ ((@to-@from+1)*@price)
else
if (@Count>=@from)
set @Out=@Out+ ((@Count-@from+1)*@price)
FETCH NEXT FROM cur1 into @from,@to,@price
END
CLOSE cur1
DEALLOCATE cur1


return round(@out,0)
end