Я хочу получить все строки из БД, где OWNERKEY
равен 1, но только самый высокий DATAVERSION
DATACONTROLID
.Выберите все строки, но только самую последнюю (самую высокую) версию из базы данных
В приведенном ниже примере у меня есть два ряда, где DATACONTROLID
= 1, они имеют 1 и 2 как DATAVERSION
. Я хочу получить максимум.
MyDB:
DATAKEY OWNERKEY OWNERTYPE DATAVERSION MALLKEY DATAVALUE DATAVALUETYPE DATACONTROLID DATADATE DATATIME DATASIGN
=========== ============ =========== =========== =========== ========= ============ ============= ========== =========== =========
4 1 2 1 1 1 2 1 2015-11-24 09:55:00:00 ADMIN
3 1 2 2 1 2 2 1 2015-11-23 20:55:00:00 ADMIN
2 1 2 1 1 3 2 2 2015-11-23 15:39:00:00 ADMIN
1 1 2 1 1 4 2 3 2015-11-23 11:29:00:00 ADMIN
Wanted результат:
DATAKEY OWNERKEY OWNERTYPE DATAVERSION MALLKEY DATAVALUE DATAVALUETYPE DATACONTROLID DATADATE DATATIME DATASIGN
=========== ============ =========== =========== =========== ========= ============ ============= ========== =========== =========
3 1 2 2 1 2 2 1 2015-11-23 20:55:00:00 ADMIN
2 1 2 1 1 3 2 2 2015-11-23 15:39:00:00 ADMIN
1 1 2 1 1 4 2 3 2015-11-23 11:29:00:00 ADMIN
С чего начать?
SELECT *
FROM MyDB
WHERE OWNERKEY = 1
Заявление выше является частью obviuos, но как я исхожу от этого?
Как мне кажется, я должен использовать MAX(DATAVERSION)
, но что сгруппировать? И могу ли я использовать как *
, так и MAX
?
Max функция возможно? http://www.w3schools.com/sql/sql_func_max.asp имеет некоторые примечания, которые могут быть полезны при условии совместимости SQL. –
Я думаю, вы пропустили мое редактирование. Во всяком случае, могу ли я использовать как *, так и MAX() в инструкции? – Mangs
Да, на ссылке «Попробуйте сами» из моего предыдущего комментария вот запрос, который имеет оба: «SELECT MAX (Price) AS HighestPrice, * FROM Products group by ProductID;' –