Index: trunk/import/sichten_ORACLE.sql
===================================================================
--- trunk/import/sichten_ORACLE.sql	(revision 251)
+++ trunk/import/sichten_ORACLE.sql	(revision 251)
@@ -0,0 +1,477 @@
+-- Automatisch mit pg-to-oci_keytables.pl konvertiert.
+---
+---
+
+CREATE OR REPLACE VIEW S_FLURSTUECK_NR
+AS 
+ SELECT f.ogr_fid, 
+        p.ora_geometry,
+        f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum
+   FROM ap_pto             p
+   JOIN alkis_beziehungen  v  ON p.gml_id       = v.beziehung_von
+   JOIN ax_flurstueck      f  ON v.beziehung_zu = f.gml_id
+  WHERE v.beziehungsart = 'dientZurDarstellungVon' 
+    AND p.endet IS NULL
+    AND f.endet IS NULL
+  ;
+COMMENT ON VIEW S_FLURSTUECK_NR IS 'fuer Kartendarstellung: Bruchnummerierung FlurstÃŒck';
+CREATE OR REPLACE VIEW S_FLURSTUECK_NR2
+AS 
+  SELECT f.ogr_fid, 
+         p.ora_geometry,
+         f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum
+    FROM ap_pto             p
+    JOIN alkis_beziehungen  v  ON p.gml_id       = v.beziehung_von
+    JOIN ax_flurstueck      f  ON v.beziehung_zu = f.gml_id
+   WHERE v.beziehungsart = 'dientZurDarstellungVon' 
+     AND p.endet IS NULL
+     AND f.endet IS NULL
+ UNION 
+  SELECT f.ogr_fid,
+         ST_PointOnSurface(f.ora_geometry) AS wkb_geometry,
+         f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum
+    FROM      ax_flurstueck     f 
+    LEFT JOIN alkis_beziehungen v  ON v.beziehung_zu = f.gml_id
+   WHERE v.beziehungsart is NULL
+     AND f.endet IS NULL
+  ;
+COMMENT ON VIEW S_FLURSTUECK_NR2 IS 'Bruchnummerierung FlurstÃŒck, auch Standard-Position. Nicht direkt fuer WMS verwenden';
+CREATE OR REPLACE VIEW S_HAUSNUMMER_GEBAEUDE 
+AS 
+ SELECT p.ogr_fid, 
+        p.ora_geometry,
+        p.drehwinkel * 57.296 AS drehwinkel,
+        l.hausnummer
+   FROM ap_pto p
+   JOIN alkis_beziehungen v
+     ON p.gml_id = v.beziehung_von
+   JOIN AX_LAGEBEZEICHNUNGMITHAUSNUMME l
+     ON v.beziehung_zu  = l.gml_id
+  WHERE v.beziehungsart = 'dientZurDarstellungVon'
+    AND p.endet IS NULL
+    AND l.endet IS NULL;
+COMMENT ON VIEW S_HAUSNUMMER_GEBAEUDE IS 'fuer Kartendarstellung: Hausnummern HauptgebÃ€ude';
+CREATE OR REPLACE VIEW S_NUMMER_NEBENGEBAEUDE 
+AS 
+ SELECT p.ogr_fid, 
+        p.ora_geometry, 
+        p.drehwinkel * 57.296 AS drehwinkel,
+        l.laufendenummer
+   FROM ap_pto p
+   JOIN alkis_beziehungen v 
+     ON p.gml_id = v.beziehung_von
+   JOIN AX_LAGEBEZEICHNUNGMITPSEUDONUM l
+     ON v.beziehung_zu  = l.gml_id
+  WHERE v.beziehungsart = 'dientZurDarstellungVon'
+    AND p.endet IS NULL
+    AND l.endet IS NULL
+;
+COMMENT ON VIEW S_NUMMER_NEBENGEBAEUDE IS 'fuer Kartendarstellung: Hausnummern NebengebÃ€ude';
+CREATE OR REPLACE VIEW S_ZUGEHOERIGKEITSHAKEN_FLURSTU 
+AS 
+ SELECT p.ogr_fid, 
+        p.ora_geometry, 
+        p.drehwinkel * 57.296 AS drehwinkel,
+        f.flurstueckskennzeichen
+   FROM ap_ppo p
+   JOIN alkis_beziehungen v
+     ON p.gml_id = v.beziehung_von
+   JOIN ax_flurstueck f
+     ON v.beziehung_zu = f.gml_id
+  WHERE p.art = 'Haken'
+    AND v.beziehungsart = 'dientZurDarstellungVon'
+    AND f.endet IS NULL
+    AND p.endet IS NULL;
+COMMENT ON VIEW S_ZUGEHOERIGKEITSHAKEN_FLURSTU IS 'fuer Kartendarstellung';
+CREATE OR REPLACE VIEW S_ZUORDUNGSPFEIL_FLURSTUECK 
+AS 
+ SELECT l.ogr_fid, 
+        l.ora_geometry
+   FROM ap_lpo l
+   JOIN alkis_beziehungen v
+     ON l.gml_id = v.beziehung_von
+   JOIN ax_flurstueck f
+     ON v.beziehung_zu = f.gml_id
+  WHERE l.art = 'Pfeil'
+    AND v.beziehungsart = 'dientZurDarstellungVon'
+    AND ('DKKM1000' ~~ ANY (l.advstandardmodell))
+    AND f.endet IS NULL
+    AND l.endet IS NULL;
+COMMENT ON VIEW S_ZUORDUNGSPFEIL_FLURSTUECK IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer';
+CREATE OR REPLACE VIEW S_ZUORDUNGSPFEILSPITZE_FLURSTU 
+AS 
+ SELECT l.ogr_fid, 
+        (((st_azimuth(st_pointn(l.ora_geometry, 1), 
+        st_pointn(l.ora_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel, 
+        st_startpoint(l.ora_geometry) AS wkb_geometry 
+   FROM ap_lpo l
+   JOIN alkis_beziehungen v
+     ON l.gml_id = v.beziehung_von
+   JOIN ax_flurstueck f
+     ON v.beziehung_zu = f.gml_id
+  WHERE l.art = 'Pfeil'
+    AND v.beziehungsart = 'dientZurDarstellungVon'
+    AND ('DKKM1000' ~~ ANY (l.advstandardmodell))
+    AND f.endet IS NULL
+    AND l.endet IS NULL;
+COMMENT ON VIEW S_ZUORDUNGSPFEILSPITZE_FLURSTU IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer, Spitze';
+CREATE OR REPLACE VIEW S_BESCHRIFTUNG 
+AS 
+  SELECT p.ogr_fid, 
+         p.schriftinhalt, 
+         p.art, 
+         p.drehwinkel * 57.296 AS winkel,
+         p.ora_geometry 
+    FROM ap_pto p
+   WHERE not p.schriftinhalt IS NULL 
+     AND p.endet IS NULL
+     AND p.art NOT IN ('HNR', 'PNR');
+COMMENT ON VIEW S_BESCHRIFTUNG IS 'ap_pto, die noch nicht in anderen Layern angezeigt werden';
+CREATE OR REPLACE VIEW S_ZUORDUNGSPFEIL_GEBAEUDE 
+AS 
+ SELECT l.ogr_fid, 
+        l.ora_geometry
+   FROM ap_lpo l
+   JOIN alkis_beziehungen v
+     ON l.gml_id = v.beziehung_von
+   JOIN ax_gebaeude g
+     ON v.beziehung_zu = g.gml_id
+  WHERE l.art = 'Pfeil'
+    AND v.beziehungsart = 'dientZurDarstellungVon'
+    AND g.endet IS NULL
+    AND l.endet IS NULL;
+COMMENT ON VIEW S_ZUORDUNGSPFEIL_GEBAEUDE IS 'fuer Kartendarstellung: Zuordnungspfeil fÃŒr GebÃ€ude-Nummer';
+CREATE OR REPLACE VIEW SK2004_ZUORDNUNGSPFEIL 
+AS
+ SELECT ap.ogr_fid, ap.ora_geometry 
+ FROM ap_lpo ap 
+ WHERE ((ap.signaturnummer = '2004') 
+   AND ('DKKM1000'::text ~~ ANY ((ap.advstandardmodell)::text[])));
+COMMENT ON VIEW SK2004_ZUORDNUNGSPFEIL IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer"';
+CREATE OR REPLACE VIEW SK2004_ZUORDNUNGSPFEIL_SPITZE 
+AS
+ SELECT ap.ogr_fid, (((st_azimuth(st_pointn(ap.ora_geometry, 1), 
+        st_pointn(ap.ora_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel, 
+        st_startpoint(ap.ora_geometry) AS wkb_geometry 
+ FROM ap_lpo ap 
+ WHERE ((ap.signaturnummer = '2004') 
+   AND ('DKKM1000'::text ~~ ANY ((ap.advstandardmodell)::text[])));
+CREATE OR REPLACE VIEW SK2012_FLURGRENZE 
+AS 
+ SELECT fg.ogr_fid, fg.ora_geometry
+   FROM ax_besondereflurstuecksgrenze fg
+  WHERE (3000 = ANY (fg.artderflurstuecksgrenze)) 
+    AND fg.advstandardmodell ~~ 'DLKM'::text;
+COMMENT ON VIEW SK2012_FLURGRENZE IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Flurgrenze"';
+CREATE OR REPLACE VIEW SK2014_GEMARKUNGSGRENZE 
+AS 
+ SELECT gemag.ogr_fid, gemag.ora_geometry
+   FROM ax_besondereflurstuecksgrenze gemag
+  WHERE (7003 = ANY (gemag.artderflurstuecksgrenze)) 
+    AND gemag.advstandardmodell ~~ 'DLKM'::text;
+COMMENT ON VIEW SK2014_GEMARKUNGSGRENZE IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemarkungsgrenze"';
+CREATE OR REPLACE VIEW SK2018_BUNDESLANDGRENZE 
+AS 
+ SELECT blg.ogr_fid, blg.ora_geometry
+   FROM ax_besondereflurstuecksgrenze blg
+  WHERE (7102 = ANY (blg.artderflurstuecksgrenze)) 
+    AND blg.advstandardmodell ~~ 'DLKM'::text;
+COMMENT ON VIEW SK2018_BUNDESLANDGRENZE IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Bundeslandgrenze"';
+CREATE OR REPLACE VIEW SK2020_REGIERUNGSBEZIRKSGRENZE 
+AS 
+ SELECT rbg.ogr_fid, rbg.ora_geometry
+   FROM ax_besondereflurstuecksgrenze rbg
+  WHERE (7103 = ANY (rbg.artderflurstuecksgrenze)) 
+    AND rbg.advstandardmodell ~~ 'DLKM'::text;
+COMMENT ON VIEW SK2020_REGIERUNGSBEZIRKSGRENZE IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Regierungsbezirksgrenze"';
+CREATE OR REPLACE VIEW SK2022_GEMEINDEGRENZE 
+AS 
+ SELECT gemg.ogr_fid, gemg.ora_geometry
+   FROM ax_besondereflurstuecksgrenze gemg
+  WHERE (7106 = ANY (gemg.artderflurstuecksgrenze)) 
+    AND gemg.advstandardmodell ~~ 'DLKM'::text;
+COMMENT ON VIEW SK2022_GEMEINDEGRENZE IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemeindegrenze"';
+CREATE OR REPLACE VIEW SK201X_POLITISCHE_GRENZE 
+AS 
+ SELECT ogr_fid, artderflurstuecksgrenze as art, ora_geometry
+   FROM ax_besondereflurstuecksgrenze
+  WHERE (7102 = ANY (artderflurstuecksgrenze) 
+     OR  7102 = ANY (artderflurstuecksgrenze) 
+     OR  7103 = ANY (artderflurstuecksgrenze) 
+     OR  7104 = ANY (artderflurstuecksgrenze) 
+     OR  7106 = ANY (artderflurstuecksgrenze)
+    )
+    AND advstandardmodell ~~ 'DLKM'::text;
+COMMENT ON VIEW SK201X_POLITISCHE_GRENZE IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze Politische Grenzen (Bund, Land, Kreis, Gemeinde)';
+CREATE OR REPLACE VIEW FLSTNR_OHNE_POSITION
+AS 
+ SELECT f.gml_id, 
+        f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS such
+ FROM        ax_flurstueck     f 
+   LEFT JOIN alkis_beziehungen v  ON v.beziehung_zu = f.gml_id
+  WHERE v.beziehungsart is NULL
+    AND f.endet IS NULL
+  ;
+COMMENT ON VIEW FLSTNR_OHNE_POSITION IS 'FlurstÃŒcke ohne manuell gesetzte Position fÃŒr die PrÃ€sentation der FS-Nr';
+CREATE OR REPLACE VIEW S_ALLGEMEINE_TEXTE 
+AS 
+ SELECT p.ogr_fid, 
+        p.art, 
+        p.drehwinkel * 57.296 AS drehwinkel,
+        p.schriftinhalt
+   FROM ap_pto p
+  WHERE NOT p.art = 'ZAE_NEN' 
+    AND NOT p.art = 'HNR' 
+    AND NOT p.art = 'FKT' 
+    AND NOT p.art = 'Friedhof' 
+    AND p.schriftinhalt IS NOT NULL
+    AND p.endet IS NULL;
+CREATE OR REPLACE VIEW AP_PTO_ARTEN 
+AS 
+  SELECT DISTINCT art 
+    FROM ap_pto;
+CREATE OR REPLACE VIEW TEXTE_MIT_UMBRUCH 
+AS 
+ SELECT ogr_fid, schriftinhalt, art
+   FROM ap_pto 
+  WHERE not schriftinhalt is null
+    AND schriftinhalt like '%/n%';
+CREATE OR REPLACE VIEW S_ALLGEMEINE_TEXTE_ARTEN
+AS 
+ SELECT DISTINCT art 
+   FROM s_allgemeine_texte;
+CREATE OR REPLACE VIEW FLURSTUECKS_MINMAX AS 
+ SELECT min(st_xmin(ora_geometry)) AS r_min, 
+        min(st_ymin(ora_geometry)) AS h_min, 
+        max(st_xmax(ora_geometry)) AS r_max, 
+        max(st_ymax(ora_geometry)) AS h_max
+   FROM ax_flurstueck f
+   WHERE f.endet IS NULL;
+COMMENT ON VIEW FLURSTUECKS_MINMAX IS 'Maximale Ausdehnung von ax_flurstueck fuer EXTENT-Angabe im Mapfile';
+CREATE OR REPLACE VIEW BAURECHT
+AS
+  SELECT r.ogr_fid, 
+         r.ora_geometry, 
+         r.gml_id, 
+         r.artderfestlegung as adfkey,
+         r."name",
+         r.stelle,
+         r.bezeichnung AS rechtbez,
+         a.bezeichner  AS adfbez,
+         d.bezeichnung AS stellbez
+    FROM AX_BAURAUMODERBODENORDNUNGSREC r
+    LEFT JOIN AX_BAURAUMODERBODENORDNUNGSREC a
+      ON r.artderfestlegung = a.wert
+    LEFT JOIN ax_dienststelle d
+      ON r.land   = d.land 
+     AND r.stelle = d.stelle 
+  WHERE r.endet IS NULL
+    AND d.endet IS NULL
+ ;
+CREATE OR REPLACE VIEW GEMARKUNG_IN_GEMEINDE
+AS
+  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
+  FROM            ax_flurstueck
+  WHERE           endet IS NULL
+  ORDER BY        land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
+;
+COMMENT ON VIEW GEMARKUNG_IN_GEMEINDE IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.';
+CREATE OR REPLACE VIEW ARTEN_VON_FLURSTUECKSGEOMETRIE
+AS
+ SELECT   count(gml_id) as anzahl,
+          st_geometrytype(ora_geometry)
+ FROM     ax_flurstueck
+ WHERE    endet IS NULL
+ GROUP BY st_geometrytype(ora_geometry);
+CREATE OR REPLACE VIEW ADRESSEN_HAUSNUMMERN
+AS
+    SELECT 
+        s.bezeichnung AS strassenname, 
+         g.bezeichnung AS gemeindename, 
+         l.land, 
+         l.regierungsbezirk, 
+         l.kreis, 
+         l.gemeinde, 
+         l.lage        AS strassenschluessel, 
+         l.hausnummer 
+    FROM   AX_LAGEBEZEICHNUNGMITHAUSNUMME l  
+    JOIN   ax_gemeinde g 
+      ON l.kreis=g.kreis 
+     AND l.gemeinde=g.gemeinde 
+    JOIN   AX_LAGEBEZEICHNUNGKATALOGEINTR s 
+      ON l.kreis=s.kreis 
+     AND l.gemeinde=s.gemeinde 
+     AND l.lage = s.lage
+    WHERE     l.gemeinde = 40;
+CREATE OR REPLACE VIEW ADRESSEN_ZUM_FLURSTUECK
+AS
+    SELECT
+           f.gemarkungsnummer, 
+           f.flurnummer, 
+           f.zaehler, 
+           f.nenner,
+           g.bezeichnung AS gemeindename, 
+           s.bezeichnung AS strassenname, 
+           l.lage        AS strassenschluessel, 
+           l.hausnummer 
+      FROM   ax_flurstueck f 
+      JOIN   alkis_beziehungen v 
+        ON f.gml_id=v.beziehung_von
+      JOIN   AX_LAGEBEZEICHNUNGMITHAUSNUMME l  
+        ON l.gml_id=v.beziehung_zu
+      JOIN   ax_gemeinde g 
+        ON l.kreis=g.kreis 
+       AND l.gemeinde=g.gemeinde 
+      JOIN   AX_LAGEBEZEICHNUNGKATALOGEINTR s 
+        ON l.kreis=s.kreis 
+       AND l.gemeinde=s.gemeinde 
+       AND l.lage = s.lage
+     WHERE v.beziehungsart='weistAuf'
+       AND l.gemeinde = 40
+     ORDER BY 
+           f.gemarkungsnummer,
+           f.flurnummer,
+           f.zaehler,
+           f.nenner;
+CREATE OR REPLACE VIEW FLURSTUECKE_EINES_EIGENTUEMERS 
+AS 
+   SELECT 
+      k.bezeichnung                AS gemarkung, 
+      k.gemarkungsnummer           AS gemkg_nr, 
+      f.flurnummer                 AS flur, 
+      f.zaehler                    AS fs_zaehler, 
+      f.nenner                     AS fs_nenner, 
+      f.amtlicheflaeche            AS flaeche, 
+      f.ora_geometry               AS geom,
+      b.bezeichnung                AS bezirkname,
+      g.BUCHUNGSBLATTNUMMERMITBUCHSTAB AS gb_blatt, 
+      g.blattart, 
+      s.laufendenummer             AS bvnr, 
+      art.bezeichner               AS buchgsart, 
+      n.laufendenummernachdin1421  AS name_num, 
+      p.nachnameoderfirma          AS nachname
+   FROM       ax_person              p
+        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id 
+        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id 
+        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von 
+        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id 
+        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk 
+        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id 
+        JOIN  ax_buchungsstelle      s    ON s.gml_id = bgs.beziehung_von 
+        JOIN  ax_buchungsstelle_buchungsart art ON s.buchungsart = art.wert 
+        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = s.gml_id
+        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von 
+        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer 
+   WHERE p.nachnameoderfirma LIKE 'Gemeinde %'
+     AND bpn.beziehungsart = 'benennt'
+     AND bng.beziehungsart = 'istBestandteilVon'
+     AND bgs.beziehungsart = 'istBestandteilVon'
+     AND bsf.beziehungsart = 'istGebucht'
+     AND p.endet IS NULL 
+     AND n.endet IS NULL
+     AND g.endet IS NULL
+     AND b.endet IS NULL
+     AND s.endet IS NULL
+     AND f.endet IS NULL
+     AND k.endet IS NULL
+   ORDER BY   
+         k.bezeichnung,
+         f.flurnummer,
+         f.zaehler,
+         f.nenner,
+         g.bezirk, 
+         g.BUCHUNGSBLATTNUMMERMITBUCHSTAB,
+         s.laufendenummer 
+;
+CREATE OR REPLACE VIEW RECHTE_EINES_EIGENTUEMERS 
+AS
+   SELECT 
+      k.bezeichnung                AS gemarkung, 
+      k.gemarkungsnummer           AS gemkg_nr, 
+      f.flurnummer                 AS flur, 
+      f.zaehler                    AS fs_zaehler, 
+      f.nenner                     AS fs_nenner, 
+      f.amtlicheflaeche            AS flaeche, 
+      f.ora_geometry               AS geom,
+      b.bezeichnung                AS bezirkname,
+      g.BUCHUNGSBLATTNUMMERMITBUCHSTAB AS gb_blatt, 
+      sh.laufendenummer            AS bvnr_herr, 
+      sh.zaehler || '/' || sh.nenner AS buchg_anteil_herr, 
+      arth.bezeichner              AS buchgsa_herr, 
+      bss.beziehungsart            AS bez_art,
+      artd.bezeichner              AS buchgsa_dien, 
+      sd.laufendenummer            AS bvnr_dien, 
+      n.laufendenummernachdin1421  AS name_num, 
+      p.nachnameoderfirma          AS nachname
+   FROM       ax_person              p
+        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id 
+        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id 
+        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von 
+        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id 
+        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk 
+        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id 
+        JOIN  ax_buchungsstelle      sh   ON sh.gml_id = bgs.beziehung_von
+        JOIN  ax_buchungsstelle_buchungsart arth ON sh.buchungsart = arth.wert 
+        JOIN  alkis_beziehungen      bss  ON sh.gml_id = bss.beziehung_von
+        JOIN  ax_buchungsstelle      sd   ON sd.gml_id = bss.beziehung_zu
+        JOIN  ax_buchungsstelle_buchungsart artd ON sd.buchungsart = artd.wert 
+        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = sd.gml_id
+        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von 
+        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer 
+   WHERE p.nachnameoderfirma LIKE 'Stadt %'
+     AND bpn.beziehungsart = 'benennt'
+     AND bng.beziehungsart = 'istBestandteilVon'
+     AND bgs.beziehungsart = 'istBestandteilVon'
+     AND bss.beziehungsart in ('an','zu')
+     AND bsf.beziehungsart = 'istGebucht'
+     AND p.endet IS NULL
+     AND n.endet IS NULL
+     AND g.endet IS NULL
+     AND b.endet IS NULL
+     AND sh.endet IS NULL
+     AND sd.endet IS NULL
+     AND f.endet IS NULL
+     AND k.endet IS NULL
+   ORDER BY   
+         k.bezeichnung,
+         f.flurnummer,
+         f.zaehler,
+         f.nenner,
+         g.bezirk, 
+         g.BUCHUNGSBLATTNUMMERMITBUCHSTAB,
+         sh.laufendenummer 
+;
+CREATE OR REPLACE VIEW BEZIEHUNGEN_REDUNDANT 
+AS
+SELECT *
+ FROM alkis_beziehungen AS bezalt
+ WHERE EXISTS
+       (SELECT ogr_fid
+         FROM alkis_beziehungen AS bezneu
+        WHERE bezalt.beziehung_von = bezneu.beziehung_von
+          AND bezalt.beziehung_zu  = bezneu.beziehung_zu
+          AND bezalt.beziehungsart = bezneu.beziehungsart
+          AND bezalt.ogr_fid       < bezneu.ogc_fid
+        );
+COMMENT ON VIEW BEZIEHUNGEN_REDUNDANT IS 'alkis_beziehungen zu denen es eine identische neue Version gibt.';
+CREATE OR REPLACE VIEW BEZIEHUNGEN_REDUNDANT_IN_DELET
+AS
+SELECT *
+ FROM alkis_beziehungen AS bezalt
+ WHERE EXISTS
+       (SELECT ogr_fid
+         FROM alkis_beziehungen AS bezneu
+        WHERE bezalt.beziehung_von = bezneu.beziehung_von
+          AND bezalt.beziehung_zu  = bezneu.beziehung_zu
+          AND bezalt.beziehungsart = bezneu.beziehungsart
+          AND bezalt.ogr_fid       < bezneu.ogc_fid
+        )
+     AND EXISTS
+        (SELECT ogr_fid
+         FROM delete
+         WHERE bezalt.beziehung_von = substr(featureid, 1, 16)
+            OR bezalt.beziehung_zu  = substr(featureid, 1, 16)
+        );
+COMMENT ON VIEW BEZIEHUNGEN_REDUNDANT_IN_DELET IS 'alkis_beziehungen zu denen es eine identische neue Version gibt und wo das Objekt noch in der delete-Tabelle vorkommt.';
+purge recyclebin;
+QUIT;
