日期:2014-05-18  浏览次数:20517 次

一个简单的sql语句求解
我有一个表,里面有四个字段ID(主键),BizID,DeviceID(VarChar类型),CreatedTime(DateTime类型)
在插入数据的过程中由于高并发导致了有的数据插入了多个副本,也就是说DeviceID在一段时间内重复出现了多次
现在我想做的是找出DeviceID出现了两次,并且这两条数据的CreatedTime相差一分钟的记录中CreatedTime较早的那些记录(ID值大的并不表示CreatedTime就一定大),请问该怎么做呢?


------解决方案--------------------
SQL code
SELECT * FROM TAB A
WHERE EXISTS (
SELECT 1 FROM TAB
WHERE DeviceID = A.DeviceID
AND CreatedTime > A.CreatedTime
AND CreatedTime <= DATEADD(MI,1,A.CreatedTime)
)

------解决方案--------------------
SQL code
Select SysOrderNo From ORDERDETAIL  Group by SysOrderNo having Count(SysOrderNo)=2