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
他の日付を返します。問題が見つかりません。