1
助けてください!15分間隔でトラックの状態を別名に変える
すべてのトラックの状況を15分間隔で正確に把握しようとしています。 私は15分ごとに発生したステータス変更を行うことができますが、前の間隔で何を更新したか、何時間も変更を加えていない場合はそれを再現し、変化する。 142台のトラックがあるので、理想的には15分間隔で142行になるでしょう。
どんなポインタ/ソリューションも大いに評価されます。
私はクエリを振り返って前の状態の変化を見つけて、次の状態になるまで15分間隔ごとに入力する必要があると推測しています。
SELECT top 1000
RM.RESOURCE_CALLSIGN
,RM.MESSAGE_DATE
,DATEADD(MINUTE, ROUND(DATEDIFF(MINUTE, 0, MESSAGE_DATE)/15.0, 0) * 15, 0) [Interval]
,[MESSAGE]
,RM.STATUS_WAS
,RM.STATUS_BECAME
FROM [MOBILISATIONS].[dbo].[RESOURCE_MESSAGE] RM
where RESOURCE_CALLSIGN like '_____' and MESSAGE like '%status change%'
これは私が指定した日付以降のすべての15分間隔でテーブルを作成することが分かったコードの一部です:
declare @timetbl table(t datetime)
declare @t datetime
set @t = '2017-01-01 00:00:00'
while @t <= getdate()
begin
insert into @timetbl values (@t)
set @t = dateadd(mi, 15, @t)
end
select * from @timetbl
これは素晴らしいです、本当に感謝します。あなたはそれを次のレベルにどのように持ち帰り、インターバルごとに142のトラック状況を取得しますか?すなわちトラックが午後1時にステータス3になる場合、ステータス4になるまでに要する間隔の間、ステータス3のままでなければならない。 –
@ApolloGerolymbos。 。 。あなたの質問は非常に広いようです。どの部分が本当の問題かは不明です。この回答は、私が主な問題だと思ったことに対処しています。 –
帰ってくれてありがとう。あなたの以前の助けとGoogleの組み合わせと私はそれをクラックしました。変更を加えていない場合でも、15分間隔で各トラックの状態を確認できます。つまり、クエリは元の状態に戻り、以前の変更が検出されます。コードをご希望の場合はお知らせくださいが、このコメントには長すぎます! –