Komplizierte Abfrage geling nicht.

So sieht es bis jetzt aus:

-- View: public.a_tk_kurve_steig_achsa

-- DROP VIEW public.a_tk_kurve_steig_achsa;

CREATE OR REPLACE VIEW public.a_tk_kurve_steig_achsa
 AS
 WITH t1 AS (
         SELECT "T_Messungen_Daten"."T_Messungen_ID" AS t_mess_id,
            "T_Messungen_Daten"."T_Messungen_Daten_ID" AS id1,
            lead("T_Messungen_Daten"."T_Messungen_Daten_ID", 1) OVER (ORDER BY "T_Messungen_Daten"."T_Messungen_Daten_x") AS id2,
            "T_Messungen_Daten"."T_Messungen_Daten_x" AS px1,
            "T_Messungen_Daten"."T_Messungen_Daten_y" AS py1,
            lead("T_Messungen_Daten"."T_Messungen_Daten_x", 1) OVER (ORDER BY "T_Messungen_Daten"."T_Messungen_Daten_x") AS px2,
            lead("T_Messungen_Daten"."T_Messungen_Daten_y", 1) OVER (ORDER BY "T_Messungen_Daten"."T_Messungen_Daten_x") AS py2
           FROM "T_Messungen_Daten"
          WHERE "T_Messungen_Daten"."T_Messungen_Daten_Art" = 5
        )
 SELECT t1.t_mess_id,
    t1.id1,
    t1.id2,
    t1.px1,
    t1.px2,
    t1.py1,
    t1.py2,
        CASE
            WHEN t1.px1 = t1.px2 THEN 0::double precision
            ELSE (t1.py2 - t1.py1) / (t1.px2 - t1.px1)
        END AS m_steigung,
        CASE
            WHEN t1.px1 = t1.px2 THEN 0::double precision
            ELSE t1.py2 - (t1.py2 - t1.py1) / (t1.px2 - t1.px1) * t1.px2
        END AS m_achsenabschnitt
   FROM t1
  ORDER BY t1.px1;

ALTER TABLE public.a_tk_kurve_steig_achsa
    OWNER TO postgres;

Dann:

with t1 as (select t_mess_id,id1,px1,px2,"T_Messungen_Geraden_ID",
("T_Messungen_Geraden_Achsenab" - m_achsenabschnitt) / (m_steigung - "T_Messungen_Geraden_Steig") as spx,
("T_Messungen_Geraden_Steig" * (("T_Messungen_Geraden_Achsenab" - m_achsenabschnitt) / (m_steigung - "T_Messungen_Geraden_Steig")) + "T_Messungen_Geraden_Achsenab") as spy
from a_tk_kurve_steig_achsa 
inner join "A_Mess_ID_Ber_Geraden" 
on a_tk_kurve_steig_achsa.t_mess_id = "A_Mess_ID_Ber_Geraden"."T_Messungen_ID"
where a_tk_kurve_steig_achsa.px1 
between "A_Mess_ID_Ber_Geraden"."T_Messungen_Auswertung_von" 
and "A_Mess_ID_Ber_Geraden"."T_Messungen_Auswertung_bis"
and a_tk_kurve_steig_achsa.px2 
between "A_Mess_ID_Ber_Geraden"."T_Messungen_Auswertung_von" 
and "A_Mess_ID_Ber_Geraden"."T_Messungen_Auswertung_bis"
and "T_Messungen_Auswertung_Typ" = 0)
insert into "T_Messungen_Punkte" ("T_Messungen_Geraden_ID","T_Messungen_Punkte_Typ","T_Messungen_Punkte_x","T_Messungen_Punkte_y")
select "T_Messungen_Geraden_ID",7 as m_typ,spx,spy from t1 where spx between px1 and px2
where t_mess_id = 125;

Diesen letzten Code hätte ich gerne als view abgespeichert. Aber da fehlt noch die dynamische Auswahl der Messung.
Muss ich die Abfrage in eine procedure mit der MessID als Argument packen, oder kann man eine view abspeichern, bei der man von aussen die m_mess_id = 125 irgendwie übergibt?
Gruß,
Aksels