当前位置: 代码迷 >> Sql Server >> 请各路,SQL 两列计算的有关问题
  详细解决方案

请各路,SQL 两列计算的有关问题

热度:14   发布时间:2016-04-24 09:55:19.0
请各路高手指点,SQL 两列计算的问题
有一组数据


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
  相关解决方案