Как найти последнюю версию документа? - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть две таблицы как tblDocument, tblDocVersions, связанные с использованием первичного ключа docid следующим образом:

tblDocument : docid | title

tblVersions :id | docid | verion | datecreated | status

tblVersions может иметь данные как

id  + docid + version
----+-------+--------+
1   | 1     | 1
----+-------+---------
2   | 1     | 2
----+-------+---------
3   | 1     | 3
----+-------+---------
4   | 2     | 1
----+-------+---------
5   | 3     | 1
----+-------+---------
6   | 3     | 2
----+-------+---------

Теперь мне нужно выбрать каждый отдельный документ с последней версией ...

ПРИМЕЧАНИЕ: Мне нужно выбрать строку из Versions, которая соответствует номеру последней версии.

1 Ответ

2 голосов
/ 28 февраля 2012
select max(version), tab1.docid from tblDocument as tab1
inner join tblVersions as tab2 on tab1.docid = tab2.docid 
group by tab1.docid 

РЕДАКТИРОВАТЬ

Не уверен, но это будет работать для вас

select tab1.* from tblDocument as tab1
inner join tblVersions as tab2 on tab1.docid = tab2.docid 
inner join 

  (select max(version) as ver,tab1.docid from tblDocument group by tab1.docid )  d
on d.docid = tab1.docid and  d.ver = tab1.version
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...