![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 11.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam
![]() 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 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj:
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 11.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie działa. Jeszcze jedno doszło. Suma z dodatkowych użytkowników (tych z ref) musi być pomnożona przez 0.1. Ma ktoś jakiś pomysł? Lub gdzie tego szukać? Zależy mi żeby było to jedno zapytanie.
|
|
|
![]()
Post
#4
|
|
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).
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
@Swiezu - możesz podać zrzuty tabel z danymi (w formie pliku do zaimportowania)? Będzie łatwiej testować
![]() -------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 10:08 |