0

ユーザーがログインする tblData があります。表では、IN または OUT のいずれかになります。私が欲しいのは、現在ログインしているユーザーを表示することです。

ここに画像の説明を入力

4

4 に答える 4

1
Declare @a table ([Date] date,[Time] Time(7),[Type] varchar(10),ID int, Location int)

Insert into @a Select '20130101','10:00','IN',280,2
union Select '20130101','11:00','IN',280,2
union Select '20130101','12:00','OUT',280,2
union Select '20130101','12:00','IN',111,2
union Select '20130101','12:00','OUT',1,2
union Select '20130101','13:00','IN',1,2


Select * from @a a2
JOIN
(
Select MAX(Cast([Date] as dateTime)+[Time]) DT,ID
from @a
Group by ID
) b
on b.ID=a2.ID and Cast(a2.[Date] as dateTime)+a2.[Time] = b.DT
Where a2.Type='IN'
于 2013-07-17T15:59:47.667 に答える
0
SELECT 
ID,MAX(convert(datetime,DATE)+' '+TIME)  FROM tblData T1 WHERE [Type] = 'IN' AND   convert(datetime,DATE)+' '+TIME>
    (SELECT max(convert(datetime,DATE)+' '+TIME) FROM tblData T2 WHERE T1.ID=T2.ID AND [TYPE]='OUT')
GROUP BY
ID
UNION
SELECT 
ID,convert(datetime,DATE)+' '+TIME  FROM tblData T1 WHERE [Type] = 'IN' AND NOT EXISTS
    (SELECT convert(datetime,DATE)+' '+TIME FROM tblData T2 WHERE T1.ID=T2.ID AND [TYPE]='OUT')
于 2013-07-17T16:16:48.613 に答える
0
SELECT 
ID,MAX(QDateTime)  FROM tblData T1 WHERE [Type] = 'IN' AND  QDateTime>
    (SELECT max(QDateTime) FROM tblData T2 WHERE T1.ID=T2.ID AND [TYPE]='OUT')
GROUP BY
ID
UNION
SELECT 
ID, QDateTime  FROM tblData T1 WHERE [Type] = 'IN' AND NOT EXISTS
    (SELECT  QDateTime FROM tblData T2 WHERE T1.ID=T2.ID AND [TYPE]='OUT')
于 2013-07-17T17:14:31.883 に答える