各位大神,小弟刚刚接触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月每天课程的收入
某基础表有以下字段课程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月每天课程的收入
第一天收入 R1=(课程总金额)/(课程到期日-课程开始日+1-0)
第二天收入 R2=(课程总金额-R1)/(课程到期日-课程开始日+1-1)
第三天收入 R3=(课程总金额-(R1+R2)/(课程到期日-课程开始日+1-2)
.。第N天收入 Rn=(课程总金额-(R1+R2+R3+....+R(n-1)/(课程到期日-课程开始日+1-(n-1))
公式贴过来就变型了 大意是:
第一天收入 R1=(课程总金额)/(课程到期日-课程开始日+1-0)
第二天收入 R2=(课程总金额-R1)/(课程到期日-课程开始日+1-1)
第三天收入 R3=(课程总金额-(R1+R2)/(课程到期日-课程开始日+1-2)
.。第N天收入 Rn=(课程总金额-(R1+R2+R3+....+R(n-1)/(课程到期日-课程开始日+1-(n-1))由于只有一张表,每过一天都至少要对每门课程算出一个剩余金额和剩余天数
我想根据基础表再生成一个表 针对每门课程/每过一天都能生成一条记录,记录以下信息日期 (从开课日期算起)
课程期初金额
课程期初天数
当天课程收入
课程剩余金额
课程剩余金额
但是 这个在sql中如何实现呢,哎,完全没有头绪,只会查询和简单计算的小朋友泪奔中。。
create procedure [存储过程名]
@m int
as
begin
[实现公式的代码]
end