Sql 将前后值返回到两个表中
对于下表,我需要两个脚本来提取两个后续表。 生成的脚本必须相当老派,并且向后兼容SQL2000。 任何建议都将不胜感激 首先,对于CARE\u ID的每个值,我需要返回事件类型所在的所有行(CH、TE、BR),并且事件日期是事件类型所在行的事件日期之前的最后一个日期。对于每个护理ID,将只有一个SU实例 例如-对于CARE_ID 6460,这是将返回的行Sql 将前后值返回到两个表中,sql,sql-server,tsql,Sql,Sql Server,Tsql,对于下表,我需要两个脚本来提取两个后续表。 生成的脚本必须相当老派,并且向后兼容SQL2000。 任何建议都将不胜感激 首先,对于CARE\u ID的每个值,我需要返回事件类型所在的所有行(CH、TE、BR),并且事件日期是事件类型所在行的事件日期之前的最后一个日期。对于每个护理ID,将只有一个SU实例 例如-对于CARE_ID 6460,这是将返回的行 CARE_ID EVENT_ID EVENT_DATE EVENT_TYPE 6460 1699 05
CARE_ID EVENT_ID EVENT_DATE EVENT_TYPE
6460 1699 05/01/2014 00:00 CH
CARE_ID EVENT_ID EVENT_DATE EVENT_TYPE
6460 1698 12/03/2014 00:00 CH
其次,我需要的与上面非常相似,但我需要第一个实例,其中事件类型为(CH,TE,BR),事件日期为事件类型=SU的事件日期之后的第一个日期
例如-对于CARE_ID 6460,这是将返回的行
CARE_ID EVENT_ID EVENT_DATE EVENT_TYPE
6460 1699 05/01/2014 00:00 CH
CARE_ID EVENT_ID EVENT_DATE EVENT_TYPE
6460 1698 12/03/2014 00:00 CH
在这两种情况下,如果有多个行不能用事件日期分隔,因为它们的事件日期在同一日期,则平局断路器是事件ID。对于SU之前的实例,事件ID值应为最高,对于SU之后的实例,事件ID值应为最低
CARE_ID EVENT_ID EVENT_DATE EVENT_TYPE
3 189 15/04/2010 00:00 SU
3 104 12/05/2010 00:00 CH
3 16 12/07/2010 00:00 BR
3 17 13/07/2010 00:00 BR
3 18 13/07/2010 00:00 BR
39 6 21/07/2009 00:00 CH
39 45 09/10/2009 00:00 TE
78 9 28/07/2009 00:00 TE
78 11 28/07/2009 00:00 CH
95 21 31/07/2009 00:00 CH
95 21 31/07/2009 00:00 TE
151 49 21/03/2010 00:00 TE
217 158 18/02/2010 00:00 SU
217 102 30/03/2010 00:00 CH
355 19 13/07/2010 00:00 BR
355 20 13/07/2010 00:00 BR
355 21 13/07/2010 00:00 BR
355 22 13/07/2010 00:00 BR
355 23 13/07/2010 00:00 BR
355 56 16/07/2010 00:00 TE
355 111 16/07/2010 00:00 CH
364 569 29/01/2011 00:00 SU
364 673 24/08/2012 00:00 TE
367 247 01/07/2010 00:00 SU
369 117 28/07/2010 00:00 CH
369 248 28/07/2010 00:00 SU
380 277 08/07/2011 00:00 TE
631 147 25/12/2009 00:00 CH
631 74 15/01/2010 00:00 TE
631 148 02/02/2010 00:00 CH
1066 472 11/11/2010 00:00 SU
1066 91 15/11/2010 00:00 TE
1661 216 25/01/2011 00:00 CH
1661 217 25/01/2011 00:00 CH
1661 95 01/02/2011 00:00 TE
1661 218 01/02/2011 00:00 CH
1663 97 25/01/2011 00:00 TE
1663 98 01/02/2011 00:00 TE
1663 223 01/02/2011 00:00 CH
1666 100 23/01/2011 00:00 TE
1666 225 01/02/2011 00:00 CH
1805 378 05/03/2011 00:00 CH
1805 383 05/03/2011 00:00 CH
1805 379 06/03/2011 00:00 CH
1805 381 07/03/2011 00:00 CH
2123 769 05/05/2011 00:00 SU
2123 280 10/07/2011 00:00 TE
2222 434 11/05/2011 00:00 CH
2222 513 15/06/2011 00:00 CH
4541 2285 01/02/2013 00:00 SU
4541 1688 04/03/2014 00:00 CH
4711 2300 01/02/2012 00:00 SU
4711 1257 07/02/2012 00:00 CH
4730 1262 22/11/2012 00:00 CH
4730 2303 30/11/2012 00:00 SU
6460 1699 05/01/2014 00:00 CH
6460 3201 10/01/2014 00:00 SU
6460 1698 12/03/2014 00:00 CH
6464 1701 18/12/2013 00:00 CH
首先,要确保它与所有内容兼容,请使用SQL而不是T-SQL编写它。另外,到目前为止您已经完成的代码在哪里