2014-02-20 2 views
2

사용자 ID에 순위가 적용되는 행 사이에 datediff를 적용하는 방법을 알아 내려고합니다. 아래의 데이터의 예.Rank - 적용된 행 사이의 SQL - Datediff

UserID Order Number ScanDateStart ScanDateEnd Minute Difference Rank | Minute Difference Rank vs Rank+1 
    User1  10-24  10:20:00  10:40:00  20     1 | 5 
    User1  10-25  10:45:00  10:50:00  5     2 | 33 
    User1  10-26  11:12:00  11:45:00  33     3 | NULL 
    User2  10-10  00:09:00  00:09:20  20     1 | 4 
    User2  10-11  00:09:24  00:09:25  1     2 | 15 
    User2  10-12  00:09:40  00:10:12  32     3 | 3 
    User2  10-13  00:10:15  00:10:35  20     4 | NULL 

내가 찾고있는 것은이 표의 마지막 열을 코딩하는 방법입니다. 등급은 ScanDateStart에서 주문한 사용자 ID에 적용됩니다.

는 기본적으로, Rank2의 ScanDateStart에, 1 레벨의 ScanDateEnd 간의 시간을 알고 싶은 등이지만 유저마다 ....

가 감사드립니다 (주문 처리 등 사이의 시간을 계산)

+0

와 같은 UserID의 행에서 Diff ERENCE을 보여주고있다 결과? –

답변

1

이것은 UserID 열과 Rank 열에 동일한 테이블에 LEFT JOIN을 수행함으로써 달성 될 수 있고, 플러스 1.

다음 간체 의사 코드는이를 달성하는 방법을 설명한다 도움 :

SELECT R.UserID, 
     R.Rank, 
     R1.Diff 
    FROM Rank R 
    LEFT JOIN Rank R1 ON R1.UserID = R.UserID AND R1.Rank = R.Rank + 1 

효과적으로, 당신은 당신이 생성하는 데 사용되는 쿼리입니다 무엇 UserID과 현재 행에서 Rank하지만 Rank + 1