我正在使用SQL中的一个数据库,并有一个如下形式的表:
key total pmt month
---- ------ ----- -------
abc1 100 1 10
ae10 1000 100 7
etc.
---------------------------
我想为每个键复制pmt值,从给定月份开始,直到月份180,如果sum(pmt) = total
,则更少。
你知道如何在SQL中编写代码吗?(R也可以)。
谢谢
1条答案
按热度按时间gupuwyp21#
我有SQL Server,而不是Azure,但我认为这会起作用。
样本数据:
为了演示
generate_series
的基本功能,我将从month
扩展到12。请注意total
、pmt
和month
是如何填充的,intvalue
(来自generate_series
的值)是如何递增的:我们将只使用
month
开始这个系列,然后在查询的其余部分使用intvalue
作为month
。为了不填写这个屏幕,我将扩展到20。这演示了当
pmt2
(累积)达到/超过total
时,ae10
如何停止,而abc1
将持续到第20个月(我在这里人为地停止了它):将
20
更改为180
,您将填写到第109个月,此时pmt2
为100(与total
相同)。因为
key
是一个保留字,所以我用方括号将其括起来,标记为带引号的标识符(也可以使用双引号)。