【发布时间】:2017-02-14 17:37:57
【问题描述】:
这是我正在尝试执行的计算逻辑:我必须计算不断加入会员资格的成员。例如,John 会员资格于 2017 年 1 月 1 日结束,但他在 2017 年 2 月 15 日之前再次加入,则他被视为合格会员,但如果他在 45 天后加入,则不符合会员资格。我尝试使用排名功能以及尝试使用DATEDIFF 功能,似乎不起作用。
有人可以帮忙吗?提前致谢。
| ID | NAME | TERMINATIONDATE | STARTDATE |
|------------------------------------------|
| 2 | John | 1-1-2017 | 2-16-2017 |
| 3 | Harry | 12-1-2016 | 1-1-2016 |
| 4 | Rob | active | 1-1-2015 |
所以我需要未终止的 ID 计数,如果它们在终止 45 天后终止并开始,则也将其计为合格成员。
【问题讨论】:
-
样本数据和预期结果会有所帮助并消除假设
-
很抱歉:
-
添加了示例数据,但在一行中。
-
您的样本与您在问题中的解释不完全相符。您说约翰于 2017 年 2 月 15 日加入,但您的样本的开始日期为 2017 年 2 月 16 日。错字?
-
嗨,克里斯,情况是这样的;约翰于 2017 年 1 月 1 日终止并于 2017 年 2 月 16 日重新开始,即过去的天数不超过 45 天。所以我想把约翰算作一个连续的成员,而任何有超过 45 天的成员差距的人都不算在内。这有意义吗?
标签: sql-server tsql datediff