![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 1.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam taki problem. Istnieje tabela z fakturami, gdzie przy listowaniu tych faktur obliczam dla nich szacowane odsetki za pomocą wzorów w PHP. I tutaj potrzebowałbym rozwiązania na posortowanie tych faktur po wartości wyliczonych odsetek. Chciałbym uniknąć sortowania w PHP, podobnie jak tworzenia kolumny w której bym przechowywał przeliczone odsetki i według niej następnie sortował. Jednym słowem jak najmniej ingerencji w silnik PHP i baze MySQL (IMG:style_emoticons/default/smile.gif) . Ale wydaje mi się, że jednak bez tego się nie obejdzie (IMG:style_emoticons/default/sad.gif) . Może istnieje jakaś konstrukcja zapytania SQL wstawiająca sztucznie w locie dodatkową kolumnę z przypisanymi wartościami odsetek dla każdej z faktur. Z góry dzięki za odpowiedź. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 1.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Takim zapytaniem to raczej tego nie rozwiąże, ponieważ tabela w htmlu wygląda mniej więcej tak:
Klucz | Numer faktury | data platnosci | odsetki 00023 | 323232323223 | 2011-03-03 | 123zl 00123 | 32323jhhhj223 | 2011-05-03 | 13zl . . . gdzie pierwsze 3 kolumny to dane z SQLa a 4ta to wyliczenia w PHP. Z pierwszymy mogę dać:
ale jak posortować po odsetkach? Ogólnie to ilość rekordów branych do sortowania nie będzie duża około 200, więc mogę pobrać te 200 wierszy, dla każdego obliczyć odsetki i posortować. Tylko jak przypisać w locie do zapytania, że klucz 00023 ma odsetki 123zl, 00123 13zł, itd. Chyba jednak pozostaje mi dorzucić kolumnę, ale to spowoduje, że codziennie trzeba by ją przeliczać, a to by był dodatkowy czas (IMG:style_emoticons/default/smile.gif) , podobnie jak dodanie sortowania w php. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Chyba jednak pozostaje mi dorzucić kolumnę, ale to spowoduje, że codziennie trzeba by ją przeliczać, a to by był dodatkowy czas (IMG:style_emoticons/default/smile.gif) , podobnie jak dodanie sortowania w php. Codziennie odpalisz plik cronem, jaki problem? |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 1.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
I to chyba będzie jedyne słuszne wyjście.
A ale tak z drugiej strony to jestem ciekawy czy takie rozwiązanie jest w ogóle możliwe? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Na jakiej zasadzie wyliczane są odsetki? Jeżeli jedynym kryterium owych odsetek jest cena produktu i data płatności to bez problemu możesz dodać jakieś zadanie w systemie by codziennie o północy odpalony był jakiś program, aktualizujący dane w bazie. Jednak jeżeli tych danych do posortowania będzie niewiele - w okolicach 200 jak piszesz - nawet i bez indeksu powinno to działać wystarczająco szybko.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 6 Dołączył: 24.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
A może skożystaj z tabeli tymczasowej...
Unikasz tworzenia jakiś zadań w cronie. Dane masz zawsze aktualne. Dodatkowo definicję tabeli tbodsetki możesz zredukować do:
A w zapytaniu pobierającym dane możesz zjoinować tbodsetki z TABELA using klucz... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 18:09 |