私は各IDの最後のレコード(日付、与えられた、およびタイムスタンプに基づいて)を私に与えるクエリを探しています。SQL Serverクエリ。各IDの最後のレコード
私の場合、IDは「knr」なので、event_ap内のすべてのKNRの最後のレコードが必要です(名前を取得するためにpers_stmと一致します)。 Imは1つのIDに対してのみこの結果を得ることができますが、すべてのIDには適用できません。
私はこのテーブルを持っている(例のみ、両方のテーブルには千10以上entrysを持っている)
event_ap
Ereignis a_nr tnr date time knr maschnr
PAN 123 2203 2017-01-23 8:00 11 x222
PAN 132 2203 2017-01-22 8:00 22 x222
PAB 123 2203 2017-01-23 9:00 11 x222
PAN 555 2203 2017-01-23 6:00 33 x222
PAN 555 2201 2017-01-23 11:00 44 x222
PAB 222 2202 2017-01-23 10:00 44 x222
pers_stm
name knr
Test1 11
Test2 22
Test3 33
Test4 44
私が何をしたいです私のクエリはこれまでですこの
Ereignis tnr date time knr name maschnr
PAB 2203 2017-01-23 9:00 11 Test1 x222
PAN 2203 2017-01-23 6:00 33 Test3 x222
PAN 2201 2017-01-23 11:00 44 Test4 x222
です。しかし、明らかに、この1と私は、1つのIDの最後のレコードを持っていないの
SELECT TOP 1 A.Ereignis, A.tnr, A.date, A.time, A.knr, A.maschnr, B.name
FROM event_ap AS A
JOIN pers_stm AS B on A.knr = B.knr
WHERE A.knr = '11' AND A.date = CONVERT(DATETIME, '23.01.2017') ORDER BY A.time DESC
はご回答ありがとうございWHERE句と一致しているすべての
のレコードが2017-01-22で作成されたため、23.01.2017の値を探していたので、2017-01-23 –
の値を探しているので、 '(knr、date、time ) 'が一意であるか、照会出力で値が一致する2つの「最後の」レコードを考慮する必要がありますか? –
待ち時間、最大日時、または指定された日の最大時間のみが必要ですか? –