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_Sql Server 2008 - Fatal编程技术网

Sql server SQL Server-在列中查找重复项

Sql server SQL Server-在列中查找重复项,sql-server,sql-server-2008,Sql Server,Sql Server 2008,请有人能帮我找到下面这个例子的解决方案吗 用户OperatorID执行的每项工作都应该有输入和输出,如果用户在连续行中输入两次或两次输入两次或输出两次,则我只需要将最新的事务记录到我的结果中 因此,在我上面的例子中,ID102是我们感兴趣的,而忽略了其余的 位置可以是任何东西,即SI/SO、D1/DO等。用于获取副本的第二行,其中id=id-1,运算符id和位置相同: select * from t where exists ( select 1 from t i where i.

请有人能帮我找到下面这个例子的解决方案吗

用户OperatorID执行的每项工作都应该有输入和输出,如果用户在连续行中输入两次或两次输入两次或输出两次,则我只需要将最新的事务记录到我的结果中

因此,在我上面的例子中,ID102是我们感兴趣的,而忽略了其余的

位置可以是任何东西,即SI/SO、D1/DO等。

用于获取副本的第二行,其中id=id-1,运算符id和位置相同:

select * 
from t
where exists (
  select 1
  from t i
  where i.OperatorId = t.OperatorId 
    and i.id = t.id-1
    and i.Location = t.Location
)
返回:

+-----+---------------------+----------+------+--------+------------+-------------+-------------------+
| id  |      datetime       | location | site | client | operatorId | containerId |    WorkflowId     |
+-----+---------------------+----------+------+--------+------------+-------------+-------------------+
| 102 | 2017-02-03 11:10:21 | PO       | AA   | TEMP   | Test1      |         451 | 123F-258G-369147C |
+-----+---------------------+----------+------+--------+------------+-------------+-------------------+
如果Id不是连续的,则可以使用带有:

用于获取副本的第二行,其中id=id-1,运算符id和位置相同:

select * 
from t
where exists (
  select 1
  from t i
  where i.OperatorId = t.OperatorId 
    and i.id = t.id-1
    and i.Location = t.Location
)
返回:

+-----+---------------------+----------+------+--------+------------+-------------+-------------------+
| id  |      datetime       | location | site | client | operatorId | containerId |    WorkflowId     |
+-----+---------------------+----------+------+--------+------------+-------------+-------------------+
| 102 | 2017-02-03 11:10:21 | PO       | AA   | TEMP   | Test1      |         451 | 123F-258G-369147C |
+-----+---------------------+----------+------+--------+------------+-------------+-------------------+
如果Id不是连续的,则可以使用带有:


请参阅参考链接以了解有关如何提出完美问题的更多信息:也请避免发布图像,除非必要。请参阅参考链接以了解有关如何提出完美问题的更多信息:也请避免发布图像,除非必要。对不起,SqlZim,出于某种原因,我可能会得到空白结果,知道吗?我首先将所需的值存储在临时表中,并使用以下格式的查询。不知道我哪里做错了。你能帮忙吗?从存在的temp1 t中选择t.*从temp1 i中选择1,其中i.OperatorId=t.OperatorId和i.id=t.id-1和i.Location=t。Location@satya的id顺序与您的示例中相同?找到了我的表本身的问题所在。ID不是-1条目。我相信我现在可以复制同样的原理并解决它。谢谢你的帮助,如果ID不连续,他们的tp排序是最快的方法吗?请advise@satya更新了我的答案抱歉SqlZim,由于某种原因我得到了空白结果,知道吗?我首先将所需的值存储在临时表中,并使用以下格式的查询。不知道我哪里做错了。你能帮忙吗?从存在的temp1 t中选择t.*从temp1 i中选择1,其中i.OperatorId=t.OperatorId和i.id=t.id-1和i.Location=t。Location@satya的id顺序与您的示例中相同?找到了我的表本身的问题所在。ID不是-1条目。我相信我现在可以复制同样的原理并解决它。谢谢你的帮助,如果ID不连续,他们的tp排序是最快的方法吗?请advise@satya更新了我的答案