使用SQL游标或任何其他建议?
试图找到解决办法。 我必须使用以下标准创建记录列表: 记录从主表的活动状态和开始日期开始。 第二个表具有状态(活动/非活动)和状态更改日期 我必须找到符合以下条件的任何记录:该记录在1年或更长时间内处于非活动状态,然后再次变为活动状态 我试图构建一个视图,但它只对状态变化很少的记录起作用。 我正在尝试光标,但看起来我需要帮助 以下是1条记录的样本状态更改数据:使用SQL游标或任何其他建议?,sql,sql-server,cursor,Sql,Sql Server,Cursor,试图找到解决办法。 我必须使用以下标准创建记录列表: 记录从主表的活动状态和开始日期开始。 第二个表具有状态(活动/非活动)和状态更改日期 我必须找到符合以下条件的任何记录:该记录在1年或更长时间内处于非活动状态,然后再次变为活动状态 我试图构建一个视图,但它只对状态变化很少的记录起作用。 我正在尝试光标,但看起来我需要帮助 以下是1条记录的样本状态更改数据: Inactive 10/19/2016 Active 11/2/2016 Inactive 9/12/2017 Acti
Inactive 10/19/2016
Active 11/2/2016
Inactive 9/12/2017
Active 9/15/2017
Inactive 1/19/2018
Active 11/22/2019
Inactive 3/1/2020
Active 4/5/2020
谢谢 查看每一行的状态和日期,如cols
Id、StartStatus、StartStatusDate、EndStatus、EndStatusDate、Duration
。要做到这一点,您必须将历史记录表自身连接起来,查找以前的状态记录。然后,查询该视图就变得容易多了,因为它显示了您想要如何看待它的数据
乙二醇
请显示示例数据(以涵盖多个记录的完整情况)、预期结果和您的尝试。您不需要光标,也不需要窗口功能。谢谢。我会设法弄明白的。我没办法听从你的建议。你能提供更多的细节吗?谢谢@dalek建议的那样,试着扩展你的问题,包括更多的细节,并展示你的尝试,即使它不起作用,也能帮助我们了解你的问题所在。
select * from MyView
where Duration > 365
and StartStatus = ‘Inactive’
and EndStatus = ‘Active’