Мне нужна помощь Sql в запросе - PullRequest
1 голос
/ 23 декабря 2010

какой запрос я бы использовал для выполнения следующих действий

Имя1 Версия1 xAmount

Имя1 Версия2 xAmount

Имя2 Версия1 xAmount

Имя2 Версия2 xAmount

Имя2 Версия3 xAmount

Name3 Version1 xAmount

в соответствии с этим. Последняя версия для Name1 - это Version2, а последняя версия для Name2 - это Version3, а Name3 - это Version1.

Как мне создать запрос, чтобы получить каждое имя с последней версией, предполагая, что последняя версия является целым числом или что-то вроде 1.2a и 1.2b

Ответы [ 2 ]

0 голосов
/ 23 декабря 2010

Прежде всего, я настоятельно рекомендую вам сохранить числовой столбец, указывающий, какая версия версии, даже если у вас есть столбец с именем.Итак, если вы это сделаете, то решение для того, что вы хотите, очень простое:

SELECT Name, MAX(version) as MaxVersion
FROM Table
GROUP BY Name
0 голосов
/ 23 декабря 2010

используйте следующее

select Name,Version, Amount
From T1,(select Name,max(Version) as Version From T1 Group By Name) as T2
Where T1.Name=T2.Name and T1.Version=T2.Version

и если у вас есть идентификатор для таблицы

select Name,Version, Amount
From T1,(select max(ID) as ID From T1 Group By Name) as T2
Where T1.ID=T2.ID

Или

select Name,Version, Amount
From T1
Where T1.ID IN (select max(ID) as ID From T1 Group By Name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...