我有一个包含部门的表格;以及对从中添加/删除的人员的审计。
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
答案 0 :(得分:0)
这可能会有所帮助:
SELECT personId,actionid,lastUpdate
FROM DeptAudit
WHERE personid IN
(SELECT personId
FROM DeptAudit
GROUP BY personId
HAVING COUNT(*) > 1)
答案 1 :(得分:0)
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