![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 24.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam, nie mogę poradzić sobie z zapytaniem:
Tabele Aukcje (id,nazwa) Oferty (id,id_aukcji,id_uzytkownika,wartosc) Potrzebuje zwrócić te aukcje w których użytkownik z id=1 wygrał tzn. złożył najwyższa ofertę. W drugim zapytaniu potrzebuję natomiast zwrócić te aukcje w których brał udział ale przegrał. Z góry dziękuję za pomoc. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Zakładam, że w aukcji każdy użytkownik może wielokrotnie podbijać cenę, ale każde podbicie musi być wyższe od poprzedniego, tzn wykluczamy sytuację, w której o wygraniu aukcji decydować miałaby kolejność zgłoszeń przy tej samej wartości oferty.
Wtedy wygrane aukcje użytkownika o id=1 otrzymujemy:
Dla przegranych aukcji wystarczy zmienić warunek w ostatnim WHERE na przeciwny. Ten post edytował pmir13 25.04.2011, 16:32:33 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 24.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za podpowiedź. Zapytanie wygląda niby ok ale gdy je wykonuję zwraca mi tylko kilka rekordów (powinno być kilkadziesiąt) a w dodatku nie we wszystkich dany użytkownik złożył najwyższą ofertę.
Pozdrawiam |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Czy mógłbyś podać przykład danych, dla których zapytanie zwraca błędny wynik?
Edit: faktycznie był błąd, id_uzytkownika w drugim podzapytaniu nie mógł być poprawnie zwracany jako że grupowaliśmy wg id_aukcji. Teraz powinno być dobrze, zamiast id_uzytkownika porównujemy wartości maksymalnej jego oferty i oferty, która aukcję wygrała. Zapytanie zwraca wszystkie aukcje, w których oferta danego użytkownika jest najwyższa, jeśli nie chcemy aukcji, które jeszcze trwają należałoby to dodatkowo ograniczyć. Ten post edytował pmir13 25.04.2011, 16:37:18 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 24.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wyglada na to, ze teraz jest git. Jak bede mial dodatkowe pytania, pozwole sobie napisac. Wielkie dzieki.
EDIT: Jeszcze jedno pytanie. Jak powinno wygladac zapytanie jezeli w wyniku chcialbym wyswietlic wszystkie aukcje, w ktorych bral udzial dany uzytkownik i dodac kolumne czy_wygral przyjmujaca wartosc 0,1? Ten post edytował mosquitoatnight 26.04.2011, 06:27:25 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 04:28 |