【发布时间】:2020-12-23 18:03:03
【问题描述】:
我的桌子或多或少看起来像这样:
+--------+---------------------+--------+------+
| CustId | TransDate | Amount | Coef |
+--------+---------------------+--------+------+
| 1 | 2020-09-04 11:02:00 | 400 | 0.1 |
| 1 | 2020-09-04 12:05:00 | 500 | 0.2 |
| 1 | 2020-09-04 13:02:00 | 400 | 0.1 |
| 1 | 2020-09-04 13:11:00 | 600 | 0.4 |
| 2 | 2020-09-04 10:01:00 | 300 | 0.3 |
| 2 | 2020-09-04 11:02:00 | 700 | 0.2 |
+--------+---------------------+--------+------+
我想要实现的是给每个客户一个“奖金”,计算为 Amount * Coef,但交易总额的上限为 1,500。 “红利”奖励给 SUM
例如,客户“1”将在前 3 笔交易中获得全额奖金,在第 4 笔交易中获得 1,500 的差额奖金。基本上,最终结果应该是这样的:
+--------+---------------------+--------+------+---------------------------------------------------+
| CustId | TransDate | Amount | Coef | Bonus |
+--------+---------------------+--------+------+---------------------------------------------------+
| 1 | 2020-09-04 11:02:00 | 400 | 0.1 | 40 |
| 1 | 2020-09-04 12:05:00 | 500 | 0.2 | 100 |
| 1 | 2020-09-04 13:02:00 | 400 | 0.1 | 40 |
| 1 | 2020-09-04 13:11:00 | 600 | 0.4 | 80 /*(this is given only for the remaining 200)*/ |
| 2 | 2020-09-04 10:01:00 | 300 | 0.3 | 90 |
| 2 | 2020-09-04 11:02:00 | 700 | 0.2 | 140 |
+--------+---------------------+--------+------+---------------------------------------------------+
提前致谢!
干杯。
【问题讨论】:
标签: sql sql-server ssms teradata-sql-assistant