-1

次のデータを含むテーブルがあります。varchar 列の値に基づいてテーブルから最新のレコードを取得しようとしています。

ユーザー日付 Version_No

1 2013 年 8 月 1 日 5.0.12.23

1 2013 年 8 月 14 日 2.0.7P

1 2013 年 8 月 20 日 2.0.8P

2 2013 年 8 月 2 日 5.0.12.23

2 2013 年 8 月 20 日 2.0.8P

3 2013 年 8 月 1 日 2.0.7P

3 2013 年 8 月 14 日 5.0.12.23

3 2013 年 8 月 20 日 5.0.12.23

4 2013 年 8 月 20 日 5.0.12.23

5 2013 年 8 月 14 日 5.0.12.23

5 2013 年 8 月 20 日 2.0.8P

Version_No 列のデータ型は Varchar です。結果として、2013 年 8 月 20 日に実行されていたバージョンのユーザーのリストを取得したいと考えています。

ユーザー日付 Version_No

1 2013 年 8 月 20 日 2.0.8P

2 2013 年 8 月 20 日 2.0.8P

3 2013 年 8 月 20 日 5.0.12.23

4 2013 年 8 月 20 日 5.0.12.23

5 2013 年 8 月 20 日 2.0.8P

私は列 Version_no で max 関数を使用しましたが、ほとんどの場合、最高値 5.0.12.23 を返すため、機能しませんでした。

助けてください!

4

2 に答える 2

0

サブクエリを使用して、各ユーザーの最新の日付を取得します。

SELECT yt.User, yt.Date, yt.Version_No
FROM (SELECT User, MAX(Date) AS LatestUpdate FROM YourTable GROUP BY User) AS lu
INNER JOIN YourTable AS yt ON lu.LatestUpdate = yt.Date AND lu.User = yt.User

コメントに基づいて編集されました。

于 2013-08-22T17:30:09.440 に答える