create procedure dbo.%PROC% @stock_id numeric, /*ЦБ*/ @rate_date datetime, /*Дата*/ @cur_id numeric, /*Валюта*/ @coupon_rate numeric(18,8) out as begin declare @rate_id numeric declare @rate_cur_id numeric declare @rate_place_id numeric select @coupon_rate = 0 if @stock_id is null return if @rate_date is null return if @cur_id is null select @cur_id = .CUR('RUR') -- Площадка select @rate_place_id = (select max(tb_stock_rates.rate_place_id) from tb_stock_rates where tb_stock_rates.rate_date = @rate_date and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.coupon_rate is not null and tb_stock_rates.coupon_rate <> 0 and .ITEMS_EXISTS(tb_stock_rates.id)) if @rate_place_id is null return -- Котировка select @rate_id = (select tb_stock_rates.id from tb_stock_rates where tb_stock_rates.rate_date = @rate_date and tb_stock_rates.rate_place_id = @rate_place_id and tb_stock_rates.stock_id = @stock_id and tb_stock_rates.coupon_rate is not null and tb_stock_rates.coupon_rate <> 0 and .ITEMS_EXISTS(tb_stock_rates.id)) -- Котировка купона select @coupon_rate= tb_stock_rates.coupon_rate from tb_stock_rates where id=@rate_id -- Пока валюту не считаем -- Валюта котировки select @rate_cur_id = tb_stock_rates.rate_cur_id from tb_stock_rates where id=@rate_id if @rate_cur_id is null -- Валюта по умолчанию select @rate_cur_id = td_rate_places.cur_id from td_rate_places where id = @rate_place_id if (isnull(@coupon_rate, 0) <> 0) and (@rate_cur_id <> @cur_id) begin declare @cur_rate_value money, @cur_rate_date datetime .CONVERT_SUM_DEC(@rate_cur_id, @cur_id, @rate_date, 0, @coupon_rate, @coupon_rate, @cur_rate_value, @cur_rate_date) end /* -- Котировка select @stock_rate_val= tb_stock_rates.stock_rate from tb_stock_rates where id=@rate_id if @stock_rate is null select @stock_rate = 0 else if @cur_id = @rate_cur_id select @stock_rate = @stock_rate_val else begin .CONVERT_SUM_DEC(@rate_cur_id, @cur_id, @rate_date, 0, @stock_rate_val, @stock_rate, @cur_rate_value, @cur_rate_date) end */ end