2014-04-15 2 views
0

부서가 포함 된 테이블과 추가/제거 된 사람에 대한 감사가 있습니다. 특정 부서에서 1 개 이상의 레코드가있는 필터 데이터

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 
+1

사람 ID가 없습니다. 데이터를 반복합니다. 정확히 당신의 prob를 이해할 수 없습니다 .. – dpk

+0

게시물 editted - 작은 오타가 있었어 – IUnknown

답변

0

더 필터링을 진행하는 방법을 알고하지 않습니다

SELECT personId,actionid,lastUpdate 
    FROM DeptAudit 
WHERE personid IN 
     (SELECT personId 
      FROM DeptAudit 
      GROUP BY personId 
      HAVING COUNT(*) > 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 
관련 문제