OrderSubmittedtimeに最も近いポーリング日時を取得しようとしています。最も近いポーリング日時は、日時が十分に近い場合は長い。SQLサーバーで特定の日時に最も近い前回または将来の日時を取得します。
create table Rosters
(
OrderID int,
PollingTime datetime
,OrdersubmittedTime datetime
)
insert into Rosters values (1,'2017-08-07 11:30:00.000','2017-08-07 04:12:51.000')
insert into Rosters values (1,'2017-08-07 12:13:34.000','2017-08-07 04:12:51.000')
insert into Rosters values (1,'2017-08-07 03:30:00.000','2017-08-07 04:12:51.000')
insert into Rosters values (1,'2017-08-08 00:30:00.000','2017-08-07 04:12:51.000')
insert into Rosters values (2,'2017-08-05 10:30:00.000','2017-08-07 04:12:51.000')
insert into Rosters values (2,'2017-08-06 11:30:00.000','2017-08-07 04:12:51.000')
insert into Rosters values (2,'2017-08-08 00:30:00.000','2017-08-07 04:12:51.000')
期待される結果セットがある:以下
このための一例である受注= 1 、最も近いポーリング時間は、「2017年8月7日3時30分になります。 00.000' と受注= 2のために、最も近いポーリング時間は次のようになります 『2017年8月6日11:30:00.000』
私は現在、以下のようなクエリを記述するために得ることができるが、それは正しくありません:
select PollingTime
,OrdersubmittedTime
,OrderID
, abs(DATEDIFF(MINUTE,OrdersubmittedTime,PollingTime)) as ClosestPollingTime
from Rosters
親切におかげで、ありがとう。
は+/-ポーリング値に「十分に近い」のためのあなたの条件は何であるかに「十分に近い」 –