请教各位大虾。我有这样一个实例要做存储过程:
参数有原值、状态系数,
通过一个公式获得一个值,原值*状态系数*0.15/365=租金/天。
其中状态系数会随着时间的变化而变化,4年变一次,比如第一年开始的4年系数为1.2,再接下来的4年为1.1,再接下来的4年为1.0依此类推,这样是不是要做个循环?具体如何实现?请教各位大虾,就拿这个例子给说明下,谢谢。

解决方案 »

  1.   

    状态系数应该有一个表
    select distinct 状态系数,datepart(year,设定日期) as Y into #tab from 状态系数表
    select 原值*#tab.状态系数*0.15/Datediff(day,cast(Y as varchar) +'1-1',cast(Y as varchar) +'12-31') as [租金/天] from 数据表 inner join #tab on #tab.y = datepart(year,数据表.日期)
      

  2.   

    select (1.2-datadiff(year,convert(varchar(10),getdate(),120),'初始时间数据')/4*0.1)*原值*0.15/365 as 租金/天  from  表