0

こんにちは、私が使用しているすべてSQL server

車とそれらの車で発生したイベントの詳細の完全なリストを含む 1 つのテーブルがあります。必要なのは、(Reg_No) 登録番号に基づいて各車両の最後のエントリを選択できるようにすることです。

私は次の作業をしています

Table name = UnitHistory
Columns    = indx (This is just the primary key, with increment) 
Transdate(This is my date time column) and have Reg_No (Unique to each vehicle) .

それが役立つ場合、登録番号を持つ約45台の車両がありますか?

さまざまな例を見てきましたが、それらはすべて別のテーブルを使用しているようです。私を助けてください。助けてくれてありがとう

4

2 に答える 2

0
WITH cte 
AS
(
     SELECT *,
         ROW_NUMBER() OVER
         (
             PARTITION BY Reg_No
             ORDER BY Transdate DESC
         ) AS RowNumber
     FROM unithistory
)
SELECT *
FROM cte
WHERE RowNumber = 1
于 2013-11-12T13:08:08.623 に答える
0

インデックスとトランスデータのみが必要で、どちらもインクリメンタルである場合 (後の日付はより高いインデックス番号に対応すると想定しています)、最も単純なクエリは次のようになります。

  SELECT Reg_No, MAX(indx), MAX(Transdate)
    FROM UnitHistory
GROUP BY Reg_No

既知の Reg_No のすべてのデータが必要な場合は、Dd2 の回答を使用できます

データを含むすべての Reg_No のリストが必要な場合は、サブクエリが必要になります。

于 2013-11-12T13:10:03.340 に答える