Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 server 选择一列中值更改前后的行,并与下一列中值的更改相关联_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 选择一列中值更改前后的行,并与下一列中值的更改相关联

Sql server 选择一列中值更改前后的行,并与下一列中值的更改相关联,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有以下问题,我正在尝试使用SQLServer2008解决 该表有4列 1-标识符,如(a、a、a、b、b、c、c) 2-时间(以秒为单位) 3-值1(整数) 4-值2(浮动) 当按时间对每个标识符进行排序时,值1将在几行中重复。值1更改后,在几行之后(介于1到5秒之间)值2会发生相应的更改 1-检测值1的变化,并与值2的变化相对应 2-值1变化之间的秒差 我不能使用分区依据,因为值1和值2有重复出现的值 Identifier TimeStamp Value1 Value2 a

我有以下问题,我正在尝试使用SQLServer2008解决

该表有4列
1-标识符,如(a、a、a、b、b、c、c)
2-时间(以秒为单位)
3-值1(整数)
4-值2(浮动)

当按时间对每个标识符进行排序时,值1将在几行中重复。值1更改后,在几行之后(介于1到5秒之间)值2会发生相应的更改

1-检测值1的变化,并与值2的变化相对应
2-值1变化之间的秒差

我不能使用分区依据,因为值1和值2有重复出现的值

Identifier TimeStamp Value1 Value2 a 12:10:01 2 0.98 a 12:10:02 2 0.98 a 12:10:03 3 0.98 a 12:10:05 2 0.98 a 12:10:06 3 0.50 a 12:10:09 2 0.98 a 12:10:12 2 0.50 a 12:10:13 2 0.98 b 12:10:10 2 0.98 b 12:10:11 4 0.98 b 12:10:12 5 0.98 b 12:10:12 5 0.80 b 12:10:12 5 1.20 标识符时间戳值1值2 a 12:10:01 20.98 a 12:10:0220.98 a 12:10:03 30.98 a 12:10:05 20.98 a 12:10:06 30.50 a 12:10:09 20.98 a 12:10:12 20.50 a 12:10:13 20.98 b 12:10:1020.98 b 12:10:11 40.98 b 12:10:125 0.98 b 12:10:125 0.80 b 12:10:125 1.20 我一直在尝试以下查询,但运行时间太长。对于值1的每一次更改,值2都有相应的更改。值2的变化可以在几秒钟内的任何时间发生。我想不出将这两个变化联系起来的方法

);具有值1更改为(
选择
(按时间戳排序)上的行号()为[RNum]
,标识符
,T1.[TimeStamp]作为[T1 TimeStamp]
,T2.【时间戳】为【T2时间戳】
,T1.[Value1]作为[T1\u值1]
,T2.[Value2]为[T2_值1]

从表T1
T1上的内部联接表T2。[标识符]=T2。[标识符]和T1.RNum=T2.RNum+1
其中T2.[Value1]T1.[Value1]
)

选择
VC1.标识符
,VC1。[T2时间戳]
,VC2。[T2时间戳]
,DATEDIFF(S,VC1。[T2时间戳],VC2。[T2时间戳])作为[更改之间的时间]
,VC1。[T1_值1]
,VC1。[T2_值1]

从值更改VC1
内部联接值更改VC1.Unit=VC2.Unit和VC1.RNum=VC2.RNum+1上的VC2

按VC1.RNUM

顺序,请考虑在格式化文本中添加示例表数据和预期结果。同时向我们展示您当前的查询尝试我已经编辑了我的原始帖子,其中包含了一个示例表和我的查询。请参阅参考的链接了解,如何提出一个完美的问题: