有一组数据
ID A B
--------------
1 0.3 ?
2 2 ?
B列的数据公式如下,
B1 = (B2*0.01)*(A1*0.01)
注:ID号最大的B字段值=A字段值,如上例B2=A2=2
请教,如何用SQL语句写出?
------解决思路----------------------
我改进了一下,如果ID递增不固定为1
可以使用如下
WITH ROWCTE AS(
SELECT ROW_NUMBER()OVER(ORDER BY ID) RN,* FROM 你的表
)
,CTE AS(
SELECT TOP 1 *,CAST(A AS DECIMAL(19,6)) B FROM ROWCTE ORDER BY ID DESC
UNION ALL
SELECT T1.*,CAST(T2.B*0.01*T1.A*0.01 AS DECIMAL(19,6)) FROM ROWCTE T1 INNER JOIN CTE T2 ON T1.RN+1=T2.RN
)
SELECT ID,A,B FROM CTE ORDER BY ID