![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 21.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie powinno zwracać:
- dane wszystkich userów users_data.* - sumę punktów zdobytych przez usera w danym teście SUM(users_asks.point)+SUM(answers.point), lub NULL jeśli user testu nie wypełniał - maksymalną sumę punktów jaką user mógł zdobyć w danym teście Macie jakieś pomysły? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Kombinuję w ten sposób:
(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ten post edytował Anna 16.03.2007, 17:38:56 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
podaj, proszę, uproszczoną strukturę tych tabel, wraz z przykładowymi danymi i oczekiwanymi wynikami.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 21.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
(IMG:http://bobola.net.pl/test3.png)
oczekiwane wyniki: -------------------------------------------------------------------------- users_data.* |suma |max -------------------------------------------------------------------------- 1 | Tester | Testowicz | NULL | NULL | 2 | 2 1 | Tester | Testowicz | NULL | NULL | 1 | 2 2 | Marek | Konrad | marek@konrad.pl | NULL | NULL | NULL -------------------------------------------------------------------------- Można też podejść do tematu inaczej i do testu dołączyć usera z wynikami: -------------------------------------------------------------------------------------------- test.name | users_data.firstname | users_data.surname | suma | max -------------------------------------------------------------------------------------------- test nr 1 | Tester | Testowicz | 2 | 2 test nr 2 | Tester | Testowicz | 1 | 2 -------------------------------------------------------------------------------------------- Ten post edytował Anna 16.03.2007, 17:43:45 |
|
|
![]()
Post
#4
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Aniu - jesteś dla mnie niedobra. Przez Ciebie będę musiał sobie ręcznie utworzyć te tabelki...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 21.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ależ proszę...
Myślałam, że uda się coś "na sucho" wykombinować (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
na sucho nieco niezdrowo - czasem dziwne wyniki wychodzą (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Z tej struktury nie rozumiem jeszcze tylko jednej rzeczy. W tabeli users_asks pojawiają się point. Jak te punkty mają się do maksymalnej ilości punktów, którą user może zdobyć w danym teście, którą przecież wyliczamy w oparciu o odpowiedzi danego usera zapisane w tabeli users_answers? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 21.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Co do struktury - nie wiem czy jest optymalna, ale póki co, nie widzę tego inaczej.
users_answers - odpowiedzi wybrane przez usera z answers (checkbox); users_asks - odpowiedzi usera, na pytania, które nie mają gotowej odpowiedzi do wyboru (textarea) Za maksymalną liczbę punktów można chyba potraktować count(asks.ask_id). |
|
|
![]()
Post
#8
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Ok. Wyszło mi z tego coś takiego.
Jedna uwaga. U siebie mam tylko MySQL 4, który nie pozwala na SubQuery, więc musiałem przetestować to zapytanie na bazie Postgres. Niestety - nie wiem, co tak naprawdę w tej chwili potrafi MySQL 5 - ponoć dużo, więc zapytanie tego typu powinno chodzić poprawnie. Jednak głowy nie dam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:43 |