各位大神,小弟刚刚接触sql 遇到一个棘手的问题,不知用sql可否解决一个算法,并请教如何实现,非常感谢,如下:
某基础表有以下字段课程id  开课日期      结课日期      课程总金额 
00001   01/07/2011    30/09/2011    100
00002   02/07/2011    27/09/2011    240
00003   03/09/2011    02/10/2011    50
......
  收入的确认按照每天进行,即每天确认当天的收入。
第一天开课课程收入为 R(1)  
第N天课程收入为R(n)
M为已确认课时收入的天数
R(n)=(课程总金额-∑(k=1)^(n-1)R(K))/(课程到期日-课程开始日+1-M)
(公式贴过来有点变型,大意是,要确认当天收入,需先计算出 课程剩余金额即课程总金额-当天之前已确认总收入,和课程剩余天数即课程到期日-已确认总天数)如何用某种算法算出 9月每天课程的收入

解决方案 »

  1.   

    公式贴过来就变型了 大意是:
    第一天收入 R1=(课程总金额)/(课程到期日-课程开始日+1-0)
    第二天收入 R2=(课程总金额-R1)/(课程到期日-课程开始日+1-1)
    第三天收入 R3=(课程总金额-(R1+R2)/(课程到期日-课程开始日+1-2)
    .。第N天收入 Rn=(课程总金额-(R1+R2+R3+....+R(n-1)/(课程到期日-课程开始日+1-(n-1))
      

  2.   


    公式贴过来就变型了 大意是:
    第一天收入 R1=(课程总金额)/(课程到期日-课程开始日+1-0)
    第二天收入 R2=(课程总金额-R1)/(课程到期日-课程开始日+1-1)
    第三天收入 R3=(课程总金额-(R1+R2)/(课程到期日-课程开始日+1-2)
    .。第N天收入 Rn=(课程总金额-(R1+R2+R3+....+R(n-1)/(课程到期日-课程开始日+1-(n-1))由于只有一张表,每过一天都至少要对每门课程算出一个剩余金额和剩余天数
      

  3.   

    你只要想的出怎么计算,SQL就做的到,加油
      

  4.   

    这个怕不是用SQL来解决的,即使是,也需要使用到油标或累计算法.如果是这样,不如在程序中用循环来实现.
      

  5.   


    我想根据基础表再生成一个表 针对每门课程/每过一天都能生成一条记录,记录以下信息日期 (从开课日期算起)
    课程期初金额
    课程期初天数
    当天课程收入
    课程剩余金额
    课程剩余金额
    但是 这个在sql中如何实现呢,哎,完全没有头绪,只会查询和简单计算的小朋友泪奔中。。
      

  6.   


    create procedure [存储过程名]
    @m int
    as
    begin
     [实现公式的代码]
    end