我现在处于一个非常棘手的境地。使用MSSQL 2012 Express。
我有一个voucher
表,我正在检索PARTY A
的详细信息。
在以下查询结果中,除最后一列INTEREST
外,我收到的所有详细信息都已成功。
在上一栏中,我需要找到前一行INTEREST AMOUNT
的{{1}}。
说明
BALANCE
做了PARTY A
价值的RS。 10000.00日期01-01-2016。
公司JOBWORK
在05-01-2016日期支付CASH
RS 5000.00。
所以在PARTY A
列中,我需要计算RS的兴趣。 10000天4天,假定利率为12%。
等等。
INTEREST
答案 0 :(得分:1)
这个以365.25天/年计算。将该数字更改为您需要的任何数字:
SELECT*INTO #bal FROM(VALUES(1,{d'2016-01-01'},CAST(-10000.00 AS DECIMAL(28,2))),(2,{d '2016-01-05'},CAST(-5000.00 AS DECIMAL(28,2))),(3,{d '2016-01-15'},CAST(-1000.00 AS DECIMAL(28,2))))AS b(vno,dt,bal);
SELECT
*,
interest=ROUND((LAG(bal)OVER(ORDER BY vno))*(.12*DATEDIFF(DAY,LAG(dt)OVER(ORDER BY vno),dt)/365.25),2)
FROM #bal;
DROP TABLE #bal;
结果:
+-----+-------------------------+-----------+------------+
| vno | dt | bal | interest |
+-----+-------------------------+-----------+------------+
| 1 | 2016-01-01 00:00:00.000 | -10000.00 | NULL |
| 2 | 2016-01-05 00:00:00.000 | -5000.00 | -13.140000 |
| 3 | 2016-01-15 00:00:00.000 | -1000.00 | -16.430000 |
+-----+-------------------------+-----------+------------+