Można kombinować tak:
Dla danego polygonu możesz wyciągnąć ile jest linii + ile jest linii w określonym statusie ('FINALNY'). Jak porównasz te wielkości to będzie wiadomo czy wszystkie są w finalnym i czy dany obszar wymaga aktualizacji.
SELECT
COUNT(r.status) liczba_wszystkich,
SUM(CASE WHEN r.status='FINALNY' THEN 1 ELSE 0 end) liczba_finalnych
FROM
rury r
WHERE
ST_WITHIN(r.rura,obszar);
gdzie:
rura - geometria opisujaca linie
obszar - geometria opisująca ten Twój wybrany zamknięty obszar, np. działkę
np. obszar=ST_GEOMFROMTEXT('POLYGON((p1.x p1.y, p2.x p2.y, ...))')
p1,p2, ... - punkty formujące wielokąt domknięty (p1=pN)
- Aktualizacja statusu
UPDATE
dzialki d
SET
d.status='FINALNY'
WHERE
EXISTS
(SELECT 1 FROM
(SELECT
(r.status) liczba_wszystkich,
SUM(CASE WHEN r.status='FINALNY' THEN 1 ELSE 0 END) liczba_finalnych
FROM
rury r
WHERE
ST_WITHIN(r.rura,d.obszar)
)
WHERE
liczba_wszystkich=liczba_finalnych
);
To tylko taki szkic. Co w przypadku, gdy dla danego obszaru nie będzie linii ? Aktualizować status obszaru na finalny czy nie?
I pewnie wyjdzie jeszcze trochę innych detali.
edycja:
Jeszcze bardzo ważna rzecz. Nie jestem specjalistą od GIS, więc w GIS może się da inaczej/lepiej i powyższa koncepcja może być 'pod prąd' ;)