Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie z ograniczeniem, BUDUJEMY POCIĄG! :)
pc5
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 10.03.2005

Ostrzeżenie: (0%)
-----


Witam! Mam problem.

Powiedzmy, że buduję pociąg (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) W tabeli przechowuję dane różnych wagoników. Każdy wagonik opisują takie dane jak ciężar, ilość miejsc dla pasażerów. W bazie takich wagoników wpisanych jest już wiele z różnymi wartościami.

Stawiam warunek - wagony w pociągu mogą mieć max ciężar powiedzmy 100t. Jeżeli mam powiedzmy wagoniki po 2t, 10t, 3t, 4t to takich kombinacji może być wiele. Jak stworzyć odpowiednie zapytanie do bazy danych, aby zwrócone wyniki, inaczej mówiąc suma ich ciężarów, nie była wyższa od mojego założenia? Dodatkowo, zwrócone wyniki powinny być zawsze losowe, czyli tworzyć różne dozwolone kombinacje pociągów.

Jak powinno wyglądać takie zapytanie? :/ Proszę o pomoc.

Ten post edytował pc5 15.05.2009, 20:41:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pc5
post
Post #2





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 10.03.2005

Ostrzeżenie: (0%)
-----


Znalazłem coś takiego :

  1. SELECT r.id
  2. , r.dlugosc_modulu
  3. , r.dlugosc_modulu + COALESCE((SELECT SUM(dlugosc_modulu)
  4. FROM Wagoniki WHERE (dlugosc_modulu > r.dlugosc_modulu) OR (dlugosc_modulu = r.dlugosc_modulu AND id > r.id)),0) 'Suma'
  5. FROM Wagoniki r
  6.  
  7. ORDER BY r.dlugosc_modulu DESC, r.id DESC


Tabela wygląda mniej więcej tak :
id | nazwa| dlugosc_modulu | waga
0 | Cysterna-A1 | 2 | 23
1 | Cysterna-B341 | 2 | 44
2 | Pasażerski A54 | 3 | 55
3 | Pasażerski A120 | 4 | 68
4 | Węglarka r1910 | 1 | 10
5 | WARS 1 | 5 | 80
6 | WARS 2 | 4 | 50

Zapytanie które wkleiłem zsumuje wszystkie wagoniki. Długość modułu to długość wagonu, w zapytaniu generowana jest suma (długość) pociągu z wagonikiem z wiersza. Czyli :
4
6
8
12
itd

Nie wiem jak zrobić aby z bazy losowane były losowe wagoniki o długości pociągu powiedzmy max 50. Wagoniki mogą się powtarzać. Byle przy każdym selct wychodziły różne kombinacje.

Ktoś może pomóc?

Ten post edytował pc5 15.05.2009, 19:07:24
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 00:58