データベースから多数の行を返すために現在使用している 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 秒)。最も古いレコードは、降順で最初のレコードを選択することで比較的単純になりますが、最初のレコードから特定の期間内にある場合、2 番目のレコードも取得するにはどうすればよいでしょうか?
このプロセスを複数のクエリで実行できることはわかっていますが、このプロセスを 1 つのクエリに結合する方法はありますか?
私が使用しているデータベースは SQL Server 2008 R2 です。
また、DateScanned
時間は単なるプレースホルダーであり、このクエリを使用するアプリケーションで処理していることに注意してください。