如何根据日期在网格视图中进行计算

时间:2015-10-27 06:54:07

标签: c# asp.net sql-server-2008

如何进行emi计算

因为我已经贷款50000

对于50000我必须支付每月5000的emi 10个月

开始日期是2015年3月1日 截止日期为2015年12月1日。

我在数据库中插入了所有这些值 名称 总金额 开始日期 结束日期 MonthlyPay

我已将这些值绑定到网格视图

我的问题是,我想在网格中显示额外的列到期金额,当开始日期超过1个月,显示到期金额为5000,并且它越过 2个月显示10000,这样持续10个月,然后停止。

你能建议我怎么做,或者给我任何关于emi支付页面的例子, 如果你想要我附加的代码

1 个答案:

答案 0 :(得分:1)

这应该不会太难。 步骤1.在数据库中准备一个Numbers表,其中一列N为int。使用值1到180填充它(15年贷款期)如果您认为贷款期可能更高,请相应地填充更多数据。 步骤2.加入你的表(你没有告诉你的表名是什么,所以让我们假设它是EMI)到Numbers表这样:

SELECT 
    * 
FROM 
    EMI 
    INNER JOIN Numbers on DATEDIFF(m,EMI.StartDate,EMI.EndDate) >= Numbers.N

这将在开始日期和结束日期之间的几个月内爆炸您的EMI表。 步骤3.现在您需要计算到期金额(MonthlyPay *没有通过月份)。您还必须通过添加到开始日期来计算到期日。

SELECT 
    EMI.*
    ,DATEADD(m,N,StartDate) AS DueDate
    ,(Numbers.N * MonthlyPay) AS DueAmount
FROM 
    EMI 
    INNER JOIN Numbers on DATEDIFF(m,EMI.StartDate,EMI.EndDate) >= Numbers.N
ORDER BY
    EMI.Name
    ,Numbers.N

如果这可以解决您的问题,请告诉我