W jednej tabeli mam listę aptek (w skrócie: id, nazwa, itp).
W drugiej mam kosztorysy (id, id_apteki, data, status, dane1, dane2, dane3, itp).
Nowy kosztorys dla apteki jest zapisywany jako nowy rekord. Każda zmiana w danym kosztorysie powoduje zapis nowego rekordu (dla zachowania historii zmian).
Każdy z kosztorysów może przyjąć odpowiedni status (1, 2, 3, 4, 5). Zmiana może, ale nie musi, pociągać za sobą zmianę statusu. Zmiana odbywa się zawsze w górę, co jeden (czyli z 1 można przejść tylko na 2, nie można się cofnąć - z 4 przejść na 3).
Zatem jeden kosztorys może być zapisany w kilku(nastu) rekordach, ze statusami 1, 1, 2, 3, 3, 3, 4, 5. Przypominam, rekord może zmienić się o jeden i tylko w górę, zatem nie może mieć miejsca sytuacja 1, 2, 5.
Problem jest teraz przy wyciągnięciu z bazy tych aptek, których kosztorys ma status np. 3 - ale jako ostatni status, tzn nie może być to być apteka, której kosztorys ma obecnie status 4, a jego rekord ze statusem 3 też figuruje i w efekcie byłby wyświetlony. Chodzi tylko o te rekordy, które nie mają statusu większego niż 3.
Mam nadzieję, iż w miarę jasno wytłumaczyłem o co chodzi

UPDATE
Przykładowe rekordy kosztorysów
id | id_apteki | data | status
1 | 1 | (...) | 1
2 | 1 | (...) | 2
3 | 1 | (...) | 3
4 | 2 | (...) | 1
5 | 2 | (...) | 1
6 | 2 | (...) | 2
7 | 2 | (...) | 3
8 | 2 | (...) | 4
I z tych danych, jeżeli chcę wyświetlić aptekę, której status (obecny, ostatni) jest 3, powinien pokazać się tylko rekord apteki o id = 1 (apteka o id = 2 też ma wpis kosztorysu ze statusem 3, ale ostateczny status dla kosztorysu jest 4, zatem ta apteka nie ma być uwzględniona w wyniku).