Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL游标或任何其他建议?_Sql_Sql Server_Cursor - Fatal编程技术网

使用SQL游标或任何其他建议?

使用SQL游标或任何其他建议?,sql,sql-server,cursor,Sql,Sql Server,Cursor,试图找到解决办法。 我必须使用以下标准创建记录列表: 记录从主表的活动状态和开始日期开始。 第二个表具有状态(活动/非活动)和状态更改日期 我必须找到符合以下条件的任何记录:该记录在1年或更长时间内处于非活动状态,然后再次变为活动状态 我试图构建一个视图,但它只对状态变化很少的记录起作用。 我正在尝试光标,但看起来我需要帮助 以下是1条记录的样本状态更改数据: Inactive 10/19/2016 Active 11/2/2016 Inactive 9/12/2017 Acti

试图找到解决办法。 我必须使用以下标准创建记录列表:

记录从主表的活动状态和开始日期开始。 第二个表具有状态(活动/非活动)和状态更改日期

我必须找到符合以下条件的任何记录:该记录在1年或更长时间内处于非活动状态,然后再次变为活动状态

我试图构建一个视图,但它只对状态变化很少的记录起作用。 我正在尝试光标,但看起来我需要帮助

以下是1条记录的样本状态更改数据:

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’