2010-04-26 2 views
-1

나는이 쿼리를 sql에서 사용했다. pls는이 쿼리를 액세스 데이터베이스에 사용하기 위해 변환했다. 사용자 ID는 사용자 이름, LogDate, LogTimeConvert sql query

WITH 
    [TableWithRowId] as 
    (SELECT ROW_NUMBER() OVER(ORDER BY UserId,LogDate,LogTime) RowId, * FROM @YourTable), 
    [OddRows] as 
    (SELECT * FROM [TableWithRowId] WHERE rowid % 2 = 1), 
    [EvenRows] as 
    (SELECT *, RowId-1 As OddRowId FROM [TableWithRowId] WHERE rowid % 2 = 0) 
SELECT 
    [OddRows].UserId, 
    [OddRows].UserName, 
    [OddRows].LogDate, 
    [OddRows].LogTime, 
    [EvenRows].LogDate, 
    [EvenRows].LogTime 
FROM 
    [OddRows] LEFT JOIN [EvenRows] 
    ON [OddRows].RowId = [EvenRows].OddRowId 
+0

@nisha는 http://stackoverflow.com/questions/2708525/ms-access-query-for-time과 관련이 있습니까? – Fionnuala

+0

네, 관련이 있습니다 – nisha

답변

1

AFAIK, 액세스 WITH를 지원하지 않습니다

테이블 구조는 다음과 같다. TableWithRowId에 임시 테이블을 사용해야합니다 (일부는 ROW_NUMBER()에 해당한다고 가정). 다른 테이블은 하위 선택으로 변환 할 수 있습니다.