![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 2 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
powiedzmy, że mam kolumnę points. W php losuję sobię jakąś cyfrę nie przekraczającą sumy wartości w tej kolumnie. Teraz chciałbym pobrać taki rekord z bazy danych, w którym suma poprzednich rekordów była mniejsza/równa wylosowanej wartości oraz suma poprzednich rekordów wraz z obecnym rekordem który sprawdzamy była większa/równa wylosowanej wartości. Na przykładzie: mamy takie wartości w kolumnie points w kolejności w jakiej istnieją w bazie 15 10 20 30 10 PHP wylosowało 47 a więc powinniśmy wybrać rekord z wartością pkt 30, bo suma poprzednich wartości (15+10+20=45) jest mniejsza/równa 47 oraz suma poprzednich wartości wraz z tym rekordem (15+10+20+40=75) jest większa/równa. Jak to zrobić? Zależy mi na czystym i szybkim SQLu, więc dobrze by było, aby przy każdym rekordzie nie sumowało od nowa tych wszystkich rekordów lecz pamiętało poprzednie sumowanie i tylko dodało obecny rekord. Zastanawiałem się jak to zrobić w SQLowskiej funkcji, ale jakoś nie mogłem znaleźć w jaki sposób zrobić funkcję, która pobierała by mi po jednym rekordzie z bazy danych... Mając coś takiego, rozwiązanie byłoby dziecinnie proste. Ah, i z góry mówię - tego inaczej nie da rady rozwiązać, bo jest to próba optymalizacji losowania wagowego... Z góry dziękuję za pomoc. Ten post edytował Snowak 4.03.2008, 16:14:58 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 222 Pomógł: 2 Dołączył: 10.07.2007 Ostrzeżenie: (10%) ![]() ![]() |
Zaraz dam edita jak coś wymyślę. Robie na localu w8 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 17:27 |