日付と時刻でデータを並べ替えるクエリを更新して作成し、最新のレコードを見つけてから、レコード内の別のフィールドを更新して、そのようにマークを付けようとしています。
時間とデータは2つの別々のフィールドであり、時間も文字列です。
これが私がこれまでに持っているものです、
UPDATE server.ESCC_HWAY_ASSETS_GULLIES_N
set CURRENT_REC = 'Y'
From server.ESCC_HWAY_ASSETS_GULLIES_N A
inner join (
SELECT GULLY_ID, Max([DATE]) AS MaxDate, MAX([TIME]) AS MaxTime
FROM server.ESCC_HWAY_ASSETS_GULLIES_N B
GROUP BY GULLY_ID, [DATE] ) B
on A.GULLY_ID = B.GULLY_ID and A.[DATE] = B.MaxDate and A.[TIME] = B.MaxTime
これにより、時間と日付で並べ替えられたデータが生成されますが、2つのエントリがある日付を除いて、検出されたすべてのフィールドが更新されます。次に、最新のレコードのみを更新します。
私は単一のレコードでテストしています-このキューアで次の結果を与えるB47605
SELECT GULLY_ID, Max([DATE]) AS MaxDate, MAX([TIME]) AS MaxTime
FROM ESMAPADMIN.ESCC_HWAY_ASSETS_GULLIES_N B
WHERE GULLY_ID = 'B47605'
GROUP BY GULLY_ID, [DATE]
Gully_ID MaxDate MaxTime
B47605 2008-03-12 00:00:00.000 09:02:29
B47605 2008-09-19 00:00:00.000 09:51:14
B47605 2009-02-16 00:00:00.000 11:18:28
B47605 2009-08-21 00:00:00.000 12:34:45
B47605 2010-03-16 00:00:00.000 09:22:26
B47605 2010-08-25 00:00:00.000 11:19:55
B47605 2011-03-07 00:00:00.000 12:19:56
B47605 2012-05-02 00:00:00.000 20:57:54
私が望む結果は、最新のレコードのみが返されるようにすることです-
Gully_ID MaxDate MaxTime
B47605 2012-05-02 00:00:00.000 20:57:54
自分がいる場所から必要な場所への行き方がわからないので、助けていただければ幸いです。