我有一条 SQL 语句,我目前正在使用它从数据库中返回多行:
SELECT
as1.AssetTagID, as1.TagID, as1.CategoryID,
as1.Description, as1.HomeLocationID, as1.ParentAssetTagID
FROM Assets AS as1
INNER JOIN AssetsReads AS ar ON as1.AssetTagID = ar.AssetTagID
WHERE
(ar.ReadPointLocationID='Readpoint1' OR ar.ReadPointLocationID='Readpoint2')
AND (ar.DateScanned between 'LastScan' AND 'Now')
AND as1.TagID!='000000000000000000000000'
我想做一个查询,DateScanned
该查询将从该查询中获取最旧的行,并从数据库中获取另一行,如果在该行的某个时间段内有一行(例如 5 秒)。通过按降序选择第一个记录,最旧的记录会相对简单,但是如果第二个记录在第一个记录的某个时间段内,我如何获得第二个记录?
我知道我可以用多个查询来完成这个过程,但是有没有办法将这个过程组合成一个查询?
我使用的数据库是 SQL Server 2008 R2。
另请注意,DateScanned
时间只是占位符,我正在使用此查询的应用程序中处理它。