Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 - Fatal编程技术网

Sql 筛选具有多个记录的数据

Sql 筛选具有多个记录的数据,sql,sql-server,Sql,Sql Server,我有一张由部门组成的桌子;以及对增加/删除人员的审计 deptid|personid|actionid|lastupdate 3|5678|i|.... 3|5765|i|... 3|8796|i|... 3|5463|i|... 3|5678|r|..... 4|5678|i|.... 在某个特定部门,我需要了解对某个特定部门多次采取行动的所有人员的审计情况 请注意,可以针对多个部门分配一个人 因此,在上述数据中,预期结果为: 3|5678|i|.... 3|5678|r|..... 我尝

我有一张由部门组成的桌子;以及对增加/删除人员的审计

deptid|personid|actionid|lastupdate
3|5678|i|....
3|5765|i|...
3|8796|i|...
3|5463|i|...
3|5678|r|.....
4|5678|i|....
在某个特定部门,我需要了解对某个特定部门多次采取行动的所有人员的审计情况

请注意,可以针对多个部门分配一个人

因此,在上述数据中,预期结果为:

3|5678|i|....
3|5678|r|.....
我尝试了下面的方法,但不知道如何继续进一步过滤

select personId,actionid,lastUpdate,RN=ROW_NUMBER()  
OVER (PARTITION BY personId ORDER BY lastUpdate)
from DeptAudit where deptId=3

这可能有助于:

SELECT personId,actionid,lastUpdate 
  FROM DeptAudit
 WHERE personid IN 
         (SELECT personId 
            FROM DeptAudit 
           GROUP BY personId 
          HAVING COUNT(*) > 1)

但数据中没有重复的人员id。无法准确理解你的问题编辑了这篇文章-有一个小的打字错误
DECLARE @Widget  TABLE 
(ID INT,
Widget  INT,
PART NVARCHAR(10));

INSERT INTO @Widget VALUES 
(3, 56757, 'i'),
(3, 56755, 'i'),
(3, 56759, 'i'),
(3, 56753,'i'),
(3, 5678, 'r');


;WITH CTE AS (
select ID,Widget,PART,RN = ROW_NUMBER()OVER(PARTITION BY PART ORDER BY Widget desc) from @Widget
)select ID,Widget,PART from CTE WHERE RN = 1