select top 1 ROW_NUMBER() OVER (ORDER BY eventtime desc) as id,
Eventcode, eventtime as et, status from cfw.dbo.DCTBLEVENTINFO
where MeterID = 4722 and EventTime between convert(date,'2011-10-21')
and dateadd(day,1,convert(date,'2011-10-26'))
and EventCode = 13
原始结果集:
id Eventcode et status
1 13 2011-10-26 15:00:00.000 1
上面的查询返回了完美的结果集,但是如果我像下面这样使用相同的查询,它会返回错误的结果
SELECT temp.et
FROM (SELECT TOP 1 ROW_NUMBER() OVER (ORDER BY eventtime desc) as id,
Eventcode,
eventtime as et,
status
FROM cfw.dbo.DCTBLEVENTINFO
WHERE MeterID = 4722
AND EventTime BETWEEN CONVERT(date,'2011-10-21')
AND DATEADD(day,1,convert(date,'2011-10-26'))
AND EventCode = 13) temp
WHERE status = 1
上述查询的结果集:
et
------------------------
2011-10-21 21:42:00.000
它返回某个其他日期。我找不到问题。