![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Na wstępie powiem, że nie wiem jak nazwać swój problem i nie wiem za bardzo jak wyszukać rozwiązanie w necie. Rozwiązanie musi być w języku MySql.. nie mam fizycznej możliwości zastosowania PHP i innych w systemie... Mam tabelę 'wyniki':
Potrzebuję pobrać wartość pierwszą, ostatnią i inne dane z zakresu id>=3 i id<=100. Problem jest taki, że jeśli wartość początkowa jest równa 0, to powinien pobrać wartość wcześniejszą, większą od 0. Próbowałem zrobić to tak:
wartosc_pierwsza zwraca mi NULL (myślę, że to wynika z WHERE w głównym zapytaniu) i nie wiem jak to obejść... Bardzo proszę o pomoc. Pozdrawiam, Tommyexlee |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zmień w podzapytaniu nierówność. Masz teraz MNIEJSZE niż 3.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
no ale musi być mniejsze, bo ma być pobrana wartość wcześniejsza, a nie późniejsza...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Podzapytanie nie jest skorelowane, więc warunki w zapytaniu nie mają na nie żadnego wpływu. Ale coś masz skopane... chociaż nie w tym miejscu, bo akurat tę wartość powinien zwracać ok. Wartosc_ostatnia jest skopana... ni z gruszki, ni z pietruszki jest DESC
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
to czeski błąd.. tam jest 'ORDER BY id DESC'
co znaczy nie skorelowane? Ten post edytował tommyexlee 9.01.2013, 16:27:55 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 18 Pomógł: 3 Dołączył: 19.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
A jesteś całkowicie pewien, że masz w bazie wiersz spełniający warunki pierwszego zapytania?
Wykonaj zapytanie:
i sprawdź czy dostaniesz jakieś rekordy. Moim zdaniem zapytanie jest ok, z jednym ale - w pierwszym zapytaniu prawdopodobnie też powinieneś dać ORDER BY id DESC. W przeciwnym razie zawsze dostaniesz pierwszą wartość spełniającą warunek, jeżeli będzie wiersz z wartością > 0 i id mniejszym od 3 to dostaniesz pierwszą taką wartość (dla najmniejszego id), nawet jeżeli dla id = 3 wartość będzie > 0. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
mój fatalny błąd
![]() Dzięki Firebright. Dzięki również wszystkim, którzy się zainteresowali tematem. Pozdrawiam, Tommyexlee |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 03:10 |