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':
id | wartosc | inne_dane ----------------------- 0 | 500 | 6 1 | 500 | 7 2 | 0 | 4 3 | 0 | 7 4 | 0 | 3 5 | 500 | 6 6 | 500 | 3 ... | ... | ...
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:
SELECT (SELECT wartosc FROM wyniki WHERE id<=3 AND wartosc>0 LIMIT 1) AS wartosc_pierwsza, (SELECT wartosc FROM wyniki WHERE id<=100 DESC LIMIT 1) AS wartosc_ostatnia, inne_dane FROM wyniki WHERE id>=3 AND id<=100 ORDER BY id;
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