UPDATE:
게시 한 직후 알아 냈습니다 ... 본질적으로는 ROW_NUMBER
을 TaskId ORDER BY
TaskAssigmentId`를 기반으로 TaskAssignments의 하위 파티션을 만들 때 사용했습니다. 고마워.테이블의 다음/이전 행에 액세스하는 T-SQL
내가 다음 스키마와 간단한 작업 할당을 추적 할 수있는 시스템을 구축한다고 가정
Tasks:
TaskId CurrentlyAssignedTo TaskAddedTime TaskEndTime
A FooBar 2013-05-03 23:28:32.060 2013-05-07 10:12:32.060
B Bob 2013-05-03 20:12:32.060 NULL
TaskAssignments:
TaskAssignmentId TaskId AssignedTo StartTime
1 A Foo 2013-05-03 23:28:32.060
2 A Bar 2013-05-04 20:12:32.060
3 A FooBar 2013-05-05 10:12:32.060
4 B Alice 2013-05-03 20:12:32.060
5 B Bob 2013-05-06 10:12:32.060
표 Tasks
이 작업의 현재 정보가 포함되어 있습니다. 특정 작업 (A 또는 B)을 여러 작업자 (한 번에 하나씩)에게 할당 할 수 있습니다. 과제가 생성 될 때마다 (생성 시간 포함) 테이블에 과제가 할당 된 시간과 시간을 지정하는 항목이 추가됩니다. 작업이 재 할당되면 Tasks
의 CurrentlyAssignedTo
필드가 현재 작업자로 업데이트됩니다. 작업이 완전히 완료되면 TaskEndTime
필드가 Tasks
테이블에 업데이트됩니다. TaskAssignmentId
은 증분 인덱스입니다. 그와
, 나는 다음과 같은 출력 뭔가 쿼리/뷰를 구축하려는 :
VwTaskBreakDown:
TaskId AssignedTo StartTime EndTime
A Foo 2013-05-03 23:28:32.060 2013-05-04 20:12:32.060
A Bar 2013-05-04 20:12:32.060 2013-05-05 10:12:32.060
A FooBar 2013-05-05 10:12:32.060 2013-05-07 10:12:32.060
B Alice 2013-05-03 20:12:32.060 2013-05-06 10:12:32.060
B Bob 2013-05-06 10:12:32.060 NULL
이 경우, 특정 작업을 위해, 할당의 EndTime
다음 할당의 StartTime
입니다. 다음 과제가 없으면 EndTime
은 테이블 Tasks
의 TaskEndTime
에서옵니다.
어떻게하면 좋을까요?
Disclaimer
: 나는
감사합니다, Noobie