我想知道是否有更多的問題比你說的。嚴格按照你提供的信息,下面的例子似乎工作。
DECLARE @YourTable TABLE(UserId int, UserName varchar(10), LogTime time, LogDate date)
insert @YourTable values(1,'S','9:00','5/21/2010')
insert @YourTable values(1,'S','10:00','5/21/2010')
insert @YourTable values(1,'S','11:00','5/21/2010')
insert @YourTable values(1,'S','12:00','5/21/2010')
insert @YourTable values(1,'S','14:00','5/21/2010')
insert @YourTable values(1,'S','17:00','5/21/2010');
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
它看起來像你正在配對登錄/註銷。有沒有辦法判斷某一行是登錄還是退出? – Andomar 2010-04-24 17:43:53
你能告訴我們你的代碼嗎?告訴我們究竟是什麼**錯誤是? – 2010-04-25 08:50:22