![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 9.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam
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). Ten post edytował El.Kurczako 5.05.2008, 13:13:54 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 258 Pomógł: 17 Dołączył: 22.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
moze tak?
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 9.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Pięknie dziękuję ![]() Dodałem od siebie jeszcze kawałek kodu, i ostatecznie wygląda on mniej więcej tak:
Dodałem 'MAX(status) AS status, gdyż bez tego wyświetlało mi status '1' a chciałem '3'. Pozdrawiam ![]() Ten post edytował El.Kurczako 6.05.2008, 08:18:53 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:08 |