【发布时间】:2017-02-27 22:58:05
【问题描述】:
假设我有下表:
ID | user | from | to | loan
1 | BB | 01/01/2016 | 01/05/2016 | 50
2 | AD | 01/01/2016 | 01/03/2016 | 25
3 | AD | 01/03/2016 | 17/05/2016 | 30
此表中的loan 是每月一次。所以用户 BB 从 01/01/2016 到 01/05/2016 每月赚取 50 个硬币。我想把它分成以下记录:
ID | user | from | to | loan
1 | BB | 01/01/2016 | 01/02/2016 | 50
1 | BB | 01/02/2016 | 01/03/2016 | 50
1 | BB | 01/03/2016 | 01/04/2016 | 50
1 | BB | 01/04/2016 | 01/05/2016 | 50
2 | AD | 01/01/2016 | 01/02/2016 | 25
2 | AD | 01/02/2016 | 01/03/2016 | 25
3 | AD | 01/03/2016 | 01/04/2016 | 30
3 | AD | 01/04/2016 | 01/05/2016 | 30
3 | AD | 01/05/2016 | 17/05/2016 | 30
关于如何做到这一点的任何想法/建议?
【问题讨论】:
-
递归 CTE 或您加入数据的日历表
-
为什么ID为3的记录不分成3条记录(
01/03/2016 - 01/04/2016、01/04/2016 - 01/05/2016、01/05/2016 - 17/05/2016)? -
@GarethD 糟糕,我错过了那里的记录。已编辑。
标签: sql-server tsql