-- 第4天的复利计算公式
SELECT 1000 * (POWER(1.003 , 4)-1)
-- 你要差值,所以减去第3天
SELECT 1000.0 * (POWER(1.003 , 4)-POWER(1.003 , 3))
-- 第 @n 天的计算公式是
SELECT 1000.0 * (POWER(1.003 , @n)-POWER(1.003 , @n-1)) 

解决方案 »

  1.   

    假设有3个字段
    欠费      第几天       违约金
    1000         1                 3
    1000         2                 3.009
    1000         3                 3.018027对于第四天的数据create table FeeTab
    (
    Fee decimal(13,2),   ---欠費
    [days] int,                    ---第几天
    ExtraMoney float        ---违约金,如果确定保留几位小数,建议用decimal
    )
    --插入数据,其中m为欠费,n为第几天
    insert FeeTab values(m,n,(isnull((select SUM(ExtraMoney)from FeeTab where [days]<n and Fee=m),0)+m)*0.003)
      

  2.   

    楼上的不是sql server的语法,是MySQL的?
      

  3.   


    -- 凑个人数 with mt as (
    select row_number() over(order by id) days from sysobjects )
    select sum(POWER(1.003000 , days) * 1000 - 1000)  as totalmoney
    from mt 
    where days <= 10 
    totalmoney
    ---------------------------------------
    166.494000(1 行受影响)