我有一個這樣的資料集:
| 年 | 百分比 |
|---|---|
| 1990年 | 5.0 |
| 1991年 | 7.0 |
| 1992年 | 2.3 |
我想根據這些資料計算一個數字的百分比增加。
例如:我有一個輸入數字 => 100
100 的計算數字是:
100 5.0% = 105
105 7.0% = 112.35
112.35 2.3% = 114.93405
我可以在 T-Sql 中做到這一點嗎?
CREATE function [dbo].[fn_sample] (@input decimal(29,19)) returns decimal(29,19) as
begin
DECLARE @tmp TABLE([Year] int, [Percentage] decimal(29,19))
INSERT INTO @tmp ([Year], [Percentage]) VALUES
(1990, 5),
(1991, 7),
(1992, 2.3)
--TODO Calculate number
return @input
end
uj5u.com熱心網友回復:
這可以通過完全基于集合的 SQL 來完成。不需要回圈或遞回:
CREATE function [dbo].[fn_sample] (@input decimal(29,19)) returns decimal(29,19) as
begin
DECLARE @tmp TABLE([Year] int, [Percentage] decimal(29,19));
INSERT INTO @tmp ([Year], [Percentage]) VALUES
(1990, 5),
(1991, 7),
(1992, 2.3)
;
DECLARE @output decimal(29,19) = 1.00;
SELECT @output = EXP(SUM(LOG((100.00 Percentage)/100)))
FROM @tmp
return @output;
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/392996.html
標籤:sql sql-server 查询语句
上一篇:Sql查詢從事件表創建圖形
