![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 11.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam (IMG:style_emoticons/default/smile.gif)
Szukam pomocy bo już żadnego pomysłu nie mam, a w internecie nic nie znalazłem. Do rzeczy Tabela user: id(k) | date | ref Tabela download id | user_id(k) | cash | date kolumna ref definiuje przez jakiego usera sie zarejestrowal ten kolejny, czyli np. wpis User: 12 | 2012-12-12 | 7 - definiuje ze 12.12.2012 dolaczyl uzytkownik z polecenia uzytkownika o id 7 download to pobrania danego uzytkownika download.user_id = user.id (oznaczylem jako k, zeby bylo latwiej). teraz moj problem musze wybrac w danej dacie najwiekszy zarobek 10 userow, czyli:
problem w tym ze ja potrzebuje SUM(cash) powiekszony o zarobki uzytkownikow, ktorzy maja u.id w polu ref ... da się to w ogóle zrobić? Mam nadzieję, że dobrze wytłumaczyłem o co chodzi. Krótko mówiąc potrzebuję 10-ciu najbardziej zarabiających użytkowników w danym czasie uwzględniając zarobki użytkowników przez nich poleconych. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Rekurencja niezbyt dobrze działa w bazach danych. Powinieneś przy użytkowniku (w tabeli user) mieć dodatkowe pole z interesującą cię liczbą. Dodatkowo przy każdym INSERT (ew. UPDATE jak podołasz) na tabeli download powinieneś wartość tego pola zmieniać TRIGGEREM (i wszystkich powyżej) - w TRIGGERACH możesz użyć pętli (chyba).
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 22:44 |