0
我有一个查询显示集合中的行,每一行集合将有两个记录由1和2标识。它基本上是输入和输出时间。有时用户会多次冲数据。例如,当他在'冲'时,他可能会多次冲击以确保,但实际上他应该只冲1次。当冲出'出'时,他可能会多次冲击以确保,但实际上他应该只冲1次。每个条目都会记录时间。我需要配置下面的查询来获取多个条目的第一次条目或记录。更准确地说,如果在5分钟内有多个条目,那么只有第一条记录被显示,忽略了在特定5分钟时间内的其余条目。在5分钟内只显示多个条目的第一条记录
SELECT TransactionID, TrDate, Time1, Tr_Serial, Port, UnitNo, UserPIN,Finger,
IP, UnitName, Tr_Description,
CASE WHEN ROW_NUMBER() OVER (PARTITION BY userpin, TrDate
ORDER BY trdate, time1) % 2 = 0
THEN '2'
ELSE '1'
END Tr_Type
FROM (
SELECT row_number() OVER (
ORDER BY datetime) TransactionID, cast([datetime] AS date) TrDate, cast(
[datetime] AS time) Time1, [eventserial] Tr_Serial, '1' Port, [READERID]
UnitNo, [EVENTID] Tr_Type, [USERID] UserPIN, '1' Finger, 'NA' IP, [
READERNAME] UnitName, [EVENTNAME] Tr_Description
FROM [BBC].[dbo].[BBC_LOG]) A
WHERE Tr_Type = 47 OR Tr_Type = 55
谢谢。