SQL Server 实现单列累积乘

来源:互联网 发布:mac装windows分区设置 编辑:程序博客网 时间:2024/05/20 19:49
--PRODUCT 即乘积IF OBJECT_ID('dbo.RecursiveMultiplication') IS NOT NULL DROP TABLE dbo.RecursiveMultiplication;CREATE TABLE RecursiveMultiplication(Id INT, Num DECIMAL(9,2));INSERT INTO RecursiveMultiplication VALUES(3321,4),(3332,2),(3357,3),(3358,9),(3361,12),(3378,7);SELECT * FROM RecursiveMultiplication;WITH TEMP AS (SELECT RN=ROW_NUMBER() OVER(ORDER BY (SELECT NULL))--此处先为原表实现默认排序     , rm.Id     , rm.Num  FROM RecursiveMultiplication rm), Rmt AS (SELECT t.RN     , t.Id     , t.Num     , CONVERT(DECIMAL(9,2),t.Num) PRODUCT  FROM TEMP t WHERE t.RN=1UNION ALLSELECT t.RN     , t.Id     , t.Num , CONVERT(DECIMAL(9,2),t.Num*r.PRODUCT) PRODUCT  FROM Rmt r       INNER JOIN TEMP t ON r.RN=t.RN-1)SELECT r.Id     , r.Num , r.PRODUCT  FROM Rmt rORDER BY r.RN

0 0