我的数据库是关于我的用户的现金余额、交易和隔夜头寸。日期也有差距。
使用 CTE,我选择了两个表,其中包含现金和交易余额总和 [cashtrade_sum] 和头寸 [pos_sum]。这是一个示例:
cashtrade_sum
-------------
2012-01-30 10000.00
2012-03-19 9868.99
2012-03-20 9839.02
2012-03-21 10476.10
2012-03-22 0.00
2012-03-23 10102.81
2012-03-26 10314.76
2012-03-27 11037.40
2012-03-28 9887.76
2012-03-29 9234.28
2012-03-30 8718.67
2012-04-02 8396.65
2012-04-03 0.00
2012-04-12 0.00
2012-05-18 1796.78
pos_sum
-------
2012-03-22 17628.00
2012-03-23 0.00
2012-03-28 373.24
2012-03-29 0.00
2012-04-03 20835.00
2012-04-04 20736.00
2012-04-05 20268.00
2012-04-06 20268.00
2012-04-07 20268.00
2012-04-08 20268.00
2012-04-09 20412.00
2012-04-10 19998.00
2012-04-11 18999.00
2012-04-12 11465.00
2012-04-13 10975.00
2012-04-14 10975.00
2012-04-15 10975.00
2012-04-16 9750.00
我必须根据之前的可用日期 [cashtrade_sum] 值对每个 [pos_sum] 值应用佣金公式。结果应添加到当前 [cashtrade_sum] 日期。所以当前日期 [cashtrade_sum] 取决于之前的汇总或减法。
为了清楚起见,简单地说,如何从 [cashtrade_sum] 中减去每个 [pos_sum] 值的 5%,其中当前 [pos_sum] 大于昨天 [cashtrade_sum] 或最大上一个可用日期。假设 [cashtrade_sum] 的值已在上一步中修改。
请帮助它在没有 INSERTions 的情况下即时制作 CTE,并单独获得 5% 的佣金值。像这样:
results
-------
commission cash
2012-01-30 10000.00
2012-03-19 9868.99
2012-03-20 9839.02
2012-03-21 10476.10
2012-03-22 881.4 9594.70
2012-03-23 0.00 9594.70
2012-03-28 0.00 9594.70
2012-03-29 0.00 9594.70
2012-04-03 1041.75 8552.95
2012-04-04 1036.80 7516.12
2012-04-05 1013.40 6502.72
...
最好也填补日期空白,但这只是一个示例。真正的公式要复杂得多。
在 SQL Server 2008 R2 上运行。
谢谢!