2010-04-26 7 views
-1

J'ai utilisé cette requête en SQL, pls convertir cette requête à utiliser pour la base de données d'accès.Convertir la requête sql

structure tableau est UserID, Nom d'utilisateur, LogDate, LogTime

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 est-ce lié à http://stackoverflow.com/questions/2708525/ms-access-query-for-time? – Fionnuala

+0

oui monsieur il est lié avec – nisha

Répondre

1

AFAIK, Access ne prend pas en charge WITH. Vous devrez utiliser une table temporaire pour TableWithRowId (en supposant qu'il existe un équivalent de ROW_NUMBER(), ce qui peut ne pas être le cas). Les autres tables, vous pouvez simplement convertir en sous-sélection.

Questions connexes