GLE-Postgis-Interne-Flurstückslisten

Aus kvwmap
Version vom 20. März 2020, 14:24 Uhr von Markus Hentschel (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Die Views werden in ein LK-eigenes Schema "alkis_eigen" gespeichert. Bei Bedarf ändern!


View Buchung mit Eigentum

Der View verknüpft Flurstück, Buchungsstelle und Buchungsblatt und sammelt alle relevanten Informationen für die Buchung. Die Zeilenumbrüche müssen unbedingt mitgenommen werden.

CREATE VIEW alkis_eigen.fstauszug_buchung_mit_eigentum AS 
SELECT foo.flurstueck_gml_id,
   foo.buchungsblatt_gml_id,
   regexp_replace(((foo.buchung || COALESCE(foo.anteil || '
'::text, ::text)) || COALESCE(foo.nraufteilungsplan || '
'::text, ::text)) || COALESCE(foo.buchungstext || '
'::text, ::text), '(^[\n\r]+)|([\n\r]+$)'::text, ::text, 'g'::text) AS buchung
  FROM ( SELECT f.gml_id AS flurstueck_gml_id,
           g.gml_id AS buchungsblatt_gml_id,
           ((((((((art.beschreibung::text || ': '::text) || b.bezeichnung::text) || ' '::text) || g.land::text) || g.bezirk::text) || '-'::text) || ltrim(g.buchungsblattnummermitbuchstabenerweiterung::text, '0'::text)) || ', Laufende Nummer '::text) || ltrim(s.laufendenummer::text, '0'::text) AS buchung,
               CASE
                   WHEN s.zaehler <> 0::double precision THEN (
                   CASE
                       WHEN s.zaehler = s.nenner THEN '(Anteil nicht ermittelbar)'::text
                       ELSE (
                       CASE
                           WHEN mod(s.zaehler::numeric, ceil(s.zaehler::numeric)) = 0::numeric THEN to_char(s.zaehler::integer, 'FM999G999G999'::text)
                           ELSE replace(s.zaehler::text, '.'::text, ','::text)
                       END || '/'::text) ||
                       CASE
                           WHEN mod(s.nenner::numeric, ceil(s.nenner::numeric)) = 0::numeric THEN to_char(s.nenner::numeric, 'FM999G999G999G999'::text)
                           ELSE replace(s.nenner::text, '.'::text, ','::text)
                       END
                   END || ' Miteigentumsanteil am Grundstück'::text) || COALESCE(' verbunden mit dem Sondereigentum an '::text || s.beschreibungdessondereigentums::text, ::text)
                   ELSE ::text
               END AS anteil,
           ('Nr. '::text || s.nummerimaufteilungsplan::text) || ' laut Aufteilungsplan'::text AS nraufteilungsplan,
           'Buchungstext: '::text || s.buchungstext::text AS buchungstext
          FROM alkis.ax_buchungsblatt g
            LEFT JOIN alkis.ax_buchungsblattbezirk b ON g.land::text = b.land::text AND g.bezirk::text = b.bezirk::text
            LEFT JOIN alkis.ax_buchungsstelle s ON s.istbestandteilvon = g.gml_id
            LEFT JOIN alkis.ax_flurstueck f ON f.istgebucht = s.gml_id OR (f.gml_id = ANY (s.verweistauf)) OR (f.istgebucht = ANY (s.an))
            LEFT JOIN alkis.ax_buchungsart_buchungsstelle art ON s.buchungsart = art.wert
         WHERE g.blattart = 1000 AND f.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL AND s.endet IS NULL
         ORDER BY g.bezirk::integer, g.buchungsblattnummermitbuchstabenerweiterung::integer, s.laufendenummer::integer) foo;


View Buchung ohne Eigentum

Der View verknüpft Flurstück, Buchungsstelle und Buchungsblatt und sammelt alle relevanten Informationen für die Buchung, wobei eigentumsrelevante Inhalte weggelassen werden. Die Zeilenumbrüche müssen unbedingt mitgenommen werden.

CREATE VIEW alkis_eigen.fstauszug_buchung_ohne_eigentum AS 
SELECT f.gml_id AS flurstueck_gml_id,
   g.gml_id AS buchungsblatt_gml_id,
   ((((((((art.beschreibung::text || ': '::text) || b.bezeichnung::text) || ' '::text) || g.land::text) || g.bezirk::text) || '-'::text) || ltrim(g.buchungsblattnummermitbuchstabenerweiterung::text, '0'::text)) || '
Laufende Nummer '::text) || ltrim(s.laufendenummer::text, '0'::text) AS buchung
  FROM alkis.ax_buchungsblatt g
    LEFT JOIN alkis.ax_buchungsblattbezirk b ON g.land::text = b.land::text AND g.bezirk::text = b.bezirk::text
    LEFT JOIN alkis.ax_buchungsstelle s ON s.istbestandteilvon = g.gml_id
    LEFT JOIN alkis.ax_flurstueck f ON f.istgebucht = s.gml_id OR (f.gml_id = ANY (s.verweistauf)) OR (f.istgebucht = ANY (s.an))
    LEFT JOIN alkis.ax_buchungsart_buchungsstelle art ON s.buchungsart = art.wert
 WHERE g.blattart = 1000 AND f.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL AND s.endet IS NULL
 ORDER BY g.bezirk::integer, g.buchungsblattnummermitbuchstabenerweiterung::integer, s.laufendenummer::integer;

View Eigentümer mit Anschrift

View Flurstück

View Grundbuchbezirk

View Lage

View Nutzung