1

次のようなパーツのテーブルがあるとします。

PartNumber | Cost | Revision
aaaaa | 10 | Rev1
xxxxx | 12 | Rev1
aaaaa | 10 | Rev2
ccccc | 37 | Rev1
ttttt | 23 | PreRelease
sssss | 19 | Rev7
ttttt | 11 | Rev0

どういうわけか、最新のリビジョンで個別の部品番号/コスト レコードを取得したいと考えています。最新のリビジョンは常に、特定の部品の表の最後のエントリになることを知っています。たとえば、ここで「aaaaa」の最新リビジョンは「Rev2」であり、これはその部品番号に一致するテーブル内の最後のレコードです。新しいリビジョンが入力された場合、それは最後に来ます。これは、私が結果をどのように見せたいかです。

PartNumber | Cost | Revision
xxxxx | 12 | Rev1
aaaaa | 10 | Rev2
ccccc | 37 | Rev1
sssss | 19 | Rev7
ttttt | 11 | Rev0

GROUP BY PartNumber、Cost で個別のレコードを取得できることはわかっていますが、それを使用して最新のリビジョンを取得するにはどうすればよいですか? 前もって感謝します。

4

3 に答える 3

0

サブクエリで Group By クエリをスローし、そこから主キーなしでそれを区別するレコードを取得し、そこから最大の主キーを取得します。

こんな感じです、データ化していきます…

Select Max(p2.PersonID), p2.FirstName
From core.Person p2
Where Exists
(
    Select p.FirstName, Count(1)
    From core.Person p
    Where p.FirstName = p2.FirstName
    Group By p.FirstName
)
Group By p2.FirstName
于 2013-08-14T12:20:37.970 に答える
0

たとえば、次のようなインライン クエリを実行できます。

SELECT DISTINCT 
PartNumber, 
Cost, 
(
     SELECT MAX(Revision) 
     FROM parts t2 
     WHERE t1.PartNumber = t2.PartNumber
)
FROM parts t1

SQLフィドル

お役に立てれば!

于 2013-08-14T12:17:46.110 に答える