a co tu jest do rozumienia
zwyczajnie mam tablicę punktów
KOLEJNOŚĆ|X|Y
i chcę mieć takie wiersze które spełniają warunek, że punkty są oddalone od siebie o przynajmniej jakąś wartość (z tabeli posortowanej po kolejności)
aby zmierzyć odległość muszę mieć koniec i początek (to jest w miarę logiczne) czyli dwa punkty (dwa sąsiadujące wiersze w tabeli posortowanej po kolejności)
np jak na mapie masz pobrać punkty oddalone o co najmniej 50 km
a w bazie masz kolejno
GDYNIA. SOPOT, GDAŃSK, ELBLĄG,OLSZTYN, GRUDZIĄC, BYDGOSZCZ, TORUŃ
i sprawdzasz
START Z GDYNI
1)z GDYNI do SOPOTU jest miej niż 50 więc SOPOT odpada
2)z GDYNI do GDAŃSKA jest miej niż 50 więc GDAŃSK odpada
3)z GDYNI do ELBLĄGA jest więcej niż 50 km więc do zbioru wynikowego przechodzą GDYNIA i ELBLĄG
4)od teraz do porównania brany jest ELBLĄG
5)z ELBLĄGA do OLSZTYNA jest więcej niż 50 km więc do zbioru wynikowego dochodzi OLSZTYN
6)od teraz do porównania brany jest OLSZTYN
i tak dalej
mam nadzieję, że to jest dość jasno napisane i chodzi mi o skonstruowanie takiego SELECTA, który by na takiej zasadzie dawał tablicę wyników
zadałem to pytanie na grupie dyskusyjnej i własnie tam zajrzałem i
Tdobeporadził tak
Cytat
czemu nie zrobisz selekta który zwraca wszystkie odcinki miedzy
punktami czyli (A,

i odleglosc, pozniej wystarczy posortować po
odległości i gotowe?
czyli niby wystarczy policzyć odległości między punktem A i B i zostawić te które mają odpowiednią wartość
(HAVING wyrażenie >= wartosć)
ale to chyba nie załatwia sprawy - bo
A
B A->B
C B->C
zakładając, że A->B jest mniejsza niż chcę to ja w przypadku C chciałbym aby to była A->C, a nie B->C
nie widzę tego w jednym zapytaniu SQL - chyba, musi być procedura i pojedyncze zapytania o kolejne rekordy