Index: Version-0.8/import/sichten.sql
===================================================================
--- Version-0.8/import/sichten.sql	(revision 324)
+++ Version-0.8/import/sichten.sql	(revision 326)
@@ -30,6 +30,8 @@
 --  2014-01-31 Kommentar
 --  2014-02-06 nachmigration_aehnliche_anschriften
---  2014-08-27 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen.
+--  2014-08-28 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen.
 --             Relationen nun direkt ÃŒber neue Spalten in den Objekttabellen. 
+
+     -- IN ARBEIT +++ erst teilweise umgestellt
 
 
@@ -50,30 +52,5 @@
 
 --           DROP VIEW public.doppelverbindung;
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-CREATE OR REPLACE VIEW public.doppelverbindung
-AS
-  SELECT v1.beziehung_von AS fsgml,       -- gml_id auf FlurstÃŒck - Seite
-         v1.beziehung_zu  AS bsgml,       -- gml_id auf Buchungs  - Seite
-      --'direkt' AS fall,
-         0 AS ba_dien
-    FROM alkis_beziehungen v1
-   WHERE v1.beziehungsart = 'istGebucht'  -- FS --> Buchung
- UNION
-  -- Buchungstelle  >an>  Buchungstelle  >istBestandteilVon>  BLATT 
-  SELECT v2.beziehung_von AS fsgml,        -- gml_id auf FlurstÃŒck - Seite
-         an.beziehung_von AS bsgml,        -- gml_id auf Buchungs  - Seite (herrschendes GB)
-      --'Recht an' AS fall,
-         dien.buchungsart AS ba_dien       -- Ein Feld aus der Zwischen-Buchung zur Fall-Unterscheidung
-    FROM alkis_beziehungen v2
-    JOIN ax_buchungsstelle dien
-      ON  v2.beziehung_zu = dien.gml_id
-    JOIN alkis_beziehungen an
-      ON dien.gml_id = an.beziehung_zu
-   WHERE v2.beziehungsart = 'istGebucht'   -- FS --> Buchung
-     AND an.beziehungsart = 'an';
-*/
-
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+
 CREATE OR REPLACE VIEW public.doppelverbindung
 AS
@@ -101,5 +78,4 @@
 
 
-
 -- Ein View, der die Verbindung von FlurstÃŒck zur StraÃentabelle fÃŒr zwei verschiedene FÃ€lle herstellt.
 -- Einmal ÃŒber die Lagebezeichnung MIT Hausnummer und einmal OHNE.
@@ -107,42 +83,5 @@
 
 --           DROP VIEW public.flst_an_strasse;
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-CREATE OR REPLACE VIEW public.flst_an_strasse
-AS
-  SELECT vm.beziehung_von AS fsgml,          -- Join auf "gml_id" aus "ax_flurstÃŒck"
-         sm.gml_id AS stgml,                 -- Filter: gml_id der StraÃe
-      -- sm.gemeinde, sm.lage,               -- Gemeinde- und StraÃenschluessel als Filter?
-         'm' AS fall                         -- SÃ€tze unterschieden: Mit HsNr
-    FROM alkis_beziehungen vm                -- Verbindung Mit
-    JOIN ax_lagebezeichnungmithausnummer lm  -- Lage MIT
-      ON lm.gml_id=vm.beziehung_zu
-     AND vm.beziehungsart= 'weistAuf' 
-    JOIN ax_lagebezeichnungkatalogeintrag sm -- Ausnahmsweise mal direkt und nicht ÃŒber die "alkis_beziehungen"
-      ON lm.land=sm.land 
-     AND lm.regierungsbezirk=sm.regierungsbezirk 
-     AND lm.kreis=sm.kreis 
-     AND lm.gemeinde=sm.gemeinde 
-     AND lm.lage=sm.lage 
- UNION
-  SELECT vo.beziehung_von AS fsgml,          -- Join auf gml_id aus ax_flurstÃŒck
-         so.gml_id AS stgml,                 -- Filter: gml_id der StraÃe
-      -- so.gemeinde, so.lage                -- Gemeinde- und StraÃenschluessel als Filter?
-         'o' AS fall                         -- SÃ€tze unterschieden: Ohne HsNr
-    FROM alkis_beziehungen vo                -- Verbindung OHNE
-    JOIN ax_lagebezeichnungohnehausnummer lo -- Lage OHNE
-      ON lo.gml_id=vo.beziehung_zu
-     AND vo.beziehungsart= 'zeigtAuf' 
-    JOIN ax_lagebezeichnungkatalogeintrag so -- StraÃe OHNE
-      ON lo.land=so.land 
-     AND lo.regierungsbezirk=so.regierungsbezirk 
-     AND lo.kreis=so.kreis 
-     AND lo.gemeinde=so.gemeinde 
-     AND lo.lage=so.lage;
-
-*/
-
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+
 CREATE OR REPLACE VIEW public.flst_an_strasse
 AS
@@ -200,12 +139,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPPIEREN ++++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- +++ ToDo
-
-
 CREATE OR REPLACE VIEW exp_csv
 AS
@@ -311,4 +242,99 @@
            nn.laufendenummernachdin1421;
 
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- +++ ToDo
+
+
+CREATE OR REPLACE VIEW exp_csv
+AS
+ SELECT
+  -- FlurstÃŒck
+    f.gml_id                             AS fsgml,       -- mÃ¶glicher Filter FlurstÃŒcks-GML-ID
+    f.flurstueckskennzeichen             AS fs_kennz,
+    f.gemarkungsnummer,                                  -- Teile des FS-Kennz. noch mal einzeln
+    f.flurnummer, f.zaehler, f.nenner, 
+    f.amtlicheflaeche                    AS fs_flae,
+    g.bezeichnung                        AS gemarkung,
+
+  -- Grundbuch
+    gb.gml_id                            AS gbgml,       -- mÃ¶glicher Filter Grundbuch-GML-ID
+    gb.bezirk                            AS gb_bezirk,
+    gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
+    z.bezeichnung                        AS beznam,      -- GB-Bezirks-Name
+
+  -- Buchungsstelle (GrundstÃŒck)
+    s.laufendenummer                     AS bu_lfd,      -- BVNR
+    --s.zaehler, s.nenner,                                -- Anteil des GB am FS, einzelne Felder
+    '=' || s.zaehler || '/' || s.nenner  AS bu_ant,      -- als Excel-Formel (nur bei Wohnungsgrundbuch JOIN ÃŒber 'Recht an')
+    s.buchungsart,                                       -- verschlÃŒsselt
+    b.bezeichner                         AS bu_art,      -- Buchungsart entschlÃŒsselt
+
+  -- NamensNummer (Normalfall mit Person)
+    nn.laufendenummernachdin1421         AS nam_lfd, 
+    '=' || nn.zaehler|| '/' || nn.nenner AS nam_ant,         -- als Excel-Formel
+
+  -- Rechtsgemeinsachaft (Sonderfall von Namensnummer, ohne Person, ohne Nummer)
+    rg.artderrechtsgemeinschaft          AS nam_adr,
+    rg.beschriebderrechtsgemeinschaft    AS nam_bes,
+
+  -- Person
+    p.gml_id                             AS psgml,           -- mÃ¶glicher Filter Personen-GML-ID
+    p.anrede,
+    p.vorname,
+    p.namensbestandteil,
+    p.nachnameoderfirma,                                     -- Familienname
+    p.geburtsdatum,
+    --p.geburtsname, p.akademischergrad 
+ 
+  -- Adresse der Person
+    a.postleitzahlpostzustellung         AS plz,
+    a.ort_post                           AS ort,             -- Anschreifenzeile 1: PLZ+Ort
+    a.strasse,  a.hausnummer,                                -- Anschriftenzeile 2: StraÃe+HsNr
+    a.bestimmungsland                    AS land
+
+  FROM ax_flurstueck    f               -- FlurstÃŒck
+  JOIN doppelverbindung d               -- beide FÃ€lle ÃŒber Union-View: direkt und ÃŒber Recht von Buchung an Buchung
+    ON d.fsgml = f.gml_id 
+  JOIN ax_gemarkung g                   -- entschlÃŒsseln
+    ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
+  JOIN ax_buchungsstelle s              -- Buchungs-Stelle
+    ON d.bsgml = s.gml_id 
+  JOIN ax_buchungsstelle_buchungsart b  -- EnstschlÃŒsselung der Buchungsart
+    ON s.buchungsart = b.wert 
+  JOIN ax_buchungsblatt  gb             -- Buchung >istBestandteilVon> Grundbuchblatt
+    ON gb.gml_id = s.istbestandteilvon
+  JOIN ax_buchungsblattbezirk z 
+    ON gb.land=z.land AND gb.bezirk=z.bezirk 
+  JOIN ax_namensnummer nn               -- Blatt <istBestandteilVon< NamNum
+    ON gb.gml_id = nn.istbestandteilvon
+  JOIN ax_person p                      -- NamNum >benennt> Person 
+    ON p.gml_id = nn.benennt
+  LEFT JOIN ax_anschrift a 
+    ON a.gml_id = ANY (p.hat)
+
+
+-- +++++ BIS HIER BEARBEITET (28.08.) - "alkis_beziehungen" entfernt - HIER Weiter !!!!
+
+
+  -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery:
+  -- Noch mal "GB -> NamNum", aber dieses Mal fÃŒr "Rechtsgemeinschaft".
+  -- Kommt max. 1 mal je GB vor und hat keine Relation auf Person.
+  LEFT JOIN
+   ( SELECT v7.beziehung_zu,
+            rg.artderrechtsgemeinschaft, 
+            rg.beschriebderrechtsgemeinschaft 
+       FROM ax_namensnummer rg 
+       JOIN alkis_beziehungen v7              -- Blatt  --> NamNum (Rechtsgemeinschaft) 
+         ON v7.beziehung_von = rg.gml_id
+      WHERE v7.beziehungsart = 'istBestandteilVon'
+        AND NOT rg.artderrechtsgemeinschaft IS NULL
+   ) AS rg                         -- Rechtsgemeinschaft
+   ON rg.beziehung_zu = gb.gml_id  -- zum GB
+
+  ORDER BY f.flurstueckskennzeichen, 
+           gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer,
+           nn.laufendenummernachdin1421;
+
 COMMENT ON VIEW exp_csv 
  IS 'View fÃŒr einen CSV-Export aus der Buchauskunft mit alkisexport.php. Generelle Struktur. FÃŒr eine bestimmte gml_id noch den Filter setzen.';
@@ -326,11 +352,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPPIEREN ++++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- +++ ToDo
-
 
 CREATE OR REPLACE VIEW exp_csv_str
@@ -443,4 +462,118 @@
            nn.laufendenummernachdin1421;
 
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- +++ ToDo
+
+
+CREATE OR REPLACE VIEW exp_csv_str
+AS
+ SELECT
+    l.stgml,                                             -- Filter: StraÃen-GML-ID
+
+  -- FlurstÃŒck
+    f.gml_id                             AS fsgml,       -- Gruppenwechsel fÃŒr "function lage_zum_fs" in alkisexport.php
+    f.flurstueckskennzeichen             AS fs_kennz,
+    f.gemarkungsnummer,                                  -- Teile des FS-Kennz. noch mal einzeln
+    f.flurnummer, f.zaehler, f.nenner, 
+    f.amtlicheflaeche                    AS fs_flae,
+    g.bezeichnung                        AS gemarkung,
+
+  -- Grundbuch
+  --gb.gml_id                            AS gbgml,       -- mÃ¶glicher Filter Grundbuch-GML-ID
+    gb.bezirk                            AS gb_bezirk,
+    gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
+    z.bezeichnung                        AS beznam,      -- GB-Bezirks-Name
+
+  -- Buchungsstelle (GrundstÃŒck)
+    s.laufendenummer                     AS bu_lfd,      -- BVNR
+    --s.zaehler, s.nenner,                                -- Anteil des GB am FS, einzelne Felder
+    '=' || s.zaehler || '/' || s.nenner  AS bu_ant,      -- als Excel-Formel (nur bei Wohnungsgrundbuch JOIN ÃŒber 'Recht an')
+    s.buchungsart,                                       -- verschlÃŒsselt
+    b.bezeichner                         AS bu_art,      -- Buchungsart entschlÃŒsselt
+
+  -- NamensNummer (Normalfall mit Person)
+    nn.laufendenummernachdin1421         AS nam_lfd, 
+    '=' || nn.zaehler|| '/' || nn.nenner AS nam_ant,         -- als Excel-Formel
+
+  -- Rechtsgemeinsachaft (Sonderfall von Namensnummer, ohne Person, ohne Nummer)
+    rg.artderrechtsgemeinschaft          AS nam_adr,
+    rg.beschriebderrechtsgemeinschaft    AS nam_bes,
+
+  -- Person
+  --p.gml_id                             AS psgml,           -- mÃ¶glicher Filter Personen-GML-ID
+    p.anrede,
+    p.vorname,
+    p.namensbestandteil,
+    p.nachnameoderfirma,                                     -- Familienname
+    p.geburtsdatum,
+    --p.geburtsname, p.akademischergrad 
+ 
+  -- Adresse der Person
+    a.postleitzahlpostzustellung         AS plz,
+    a.ort_post                           AS ort,             -- Anschreifenzeile 1: PLZ+Ort
+    a.strasse,  a.hausnummer,                                -- Anschriftenzeile 2: StraÃe+HsNr
+    a.bestimmungsland                    AS land
+
+  FROM ax_flurstueck    f               -- FlurstÃŒck
+
+  JOIN flst_an_strasse  l               -- Lage (hier zusÃ€tzlicher JOIN gegenÃŒber Version "exp_csv") 
+	ON l.fsgml = f.gml_id 
+
+  JOIN doppelverbindung d               -- beide FÃ€lle ÃŒber Union-View: direkt und ÃŒber Recht von Buchung an Buchung
+    ON d.fsgml = f.gml_id 
+
+  JOIN ax_gemarkung g                   -- entschlÃŒsseln
+    ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 
+
+  JOIN ax_buchungsstelle s              -- Buchungs-Stelle
+    ON d.bsgml = s.gml_id 
+  JOIN ax_buchungsstelle_buchungsart b  -- EnstschlÃŒsselung der Buchungsart
+    ON s.buchungsart = b.wert 
+
+  JOIN alkis_beziehungen v3             -- Buchung --> Grundbuchblatt
+    ON s.gml_id = v3.beziehung_von AND v3.beziehungsart = 'istBestandteilVon'
+  JOIN ax_buchungsblatt  gb 
+    ON v3.beziehung_zu = gb.gml_id 
+
+  JOIN ax_buchungsblattbezirk z 
+    ON gb.land=z.land AND gb.bezirk=z.bezirk 
+
+  JOIN alkis_beziehungen v4             -- Blatt  --> NamNum
+    ON v4.beziehung_zu = gb.gml_id AND v4.beziehungsart = 'istBestandteilVon'  
+  JOIN ax_namensnummer nn 
+    ON v4.beziehung_von = nn.gml_id
+
+  JOIN alkis_beziehungen v5             -- NamNum --> Person 
+   -- 2014-01-20: Mit LEFT ab hier werden auch NumNum-Zeilen mit "Beschreibung der Rechtsgemeinschaft" geliefert (ohne Person)
+    ON v5.beziehung_von = nn.gml_id AND v5.beziehungsart = 'benennt'
+  JOIN ax_person p
+    ON v5.beziehung_zu = p.gml_id
+
+  LEFT JOIN alkis_beziehungen v6        -- Person --> Anschrift
+    ON v6.beziehung_von = p.gml_id AND v6.beziehungsart = 'hat' 
+  LEFT JOIN ax_anschrift a 
+    ON v6.beziehung_zu = a.gml_id
+
+  -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery:
+
+  -- Noch mal "GB -> NamNum", aber dieses Mal fÃŒr "Rechtsgemeinschaft".
+  -- Kommt max. 1 mal je GB vor und hat keine Relation auf Person.
+  LEFT JOIN
+   ( SELECT v7.beziehung_zu,
+            rg.artderrechtsgemeinschaft, 
+            rg.beschriebderrechtsgemeinschaft 
+       FROM ax_namensnummer rg 
+       JOIN alkis_beziehungen v7              -- Blatt  --> NamNum (Rechtsgemeinschaft) 
+         ON v7.beziehung_von = rg.gml_id
+      WHERE v7.beziehungsart = 'istBestandteilVon'
+        AND NOT rg.artderrechtsgemeinschaft IS NULL
+   ) AS rg                         -- Rechtsgemeinschaft
+   ON rg.beziehung_zu = gb.gml_id  -- zum GB
+
+  ORDER BY f.flurstueckskennzeichen, 
+           gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer,
+           nn.laufendenummernachdin1421;
+
 COMMENT ON VIEW exp_csv_str 
  IS 'View fÃŒr einen CSV-Export aus der Buchauskunft mit alkisexport.php. Liefert nur FlurstÃŒcke, die eine Lagebezeichnung MIT/OHNE Hausnummer haben. Dazu noch den Filter auf GML-ID der StraÃentabelle setzen.';
@@ -460,11 +593,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPPIEREN ++++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- +++ ToDo
-
 
 CREATE OR REPLACE VIEW rechtsgemeinschaften_zum_grundbuch
@@ -485,18 +611,30 @@
            nn.laufendenummernachdin1421;
 
-COMMENT ON VIEW rechtsgemeinschaften_zum_grundbuch 
- IS 'Rechtsgemeinschaften zum Grundbuchblatt.';
-
--- Schritt 2: Wo gibt es mehrere zu einem GB-Blatt
-
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPPIEREN ++++
-
 */
 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
 -- +++ ToDo
 
+
+CREATE OR REPLACE VIEW rechtsgemeinschaften_zum_grundbuch
+AS
+ SELECT
+     gb.gml_id,
+     gb.bezirk,
+     gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
+     nn.artderrechtsgemeinschaft,
+     nn.beschriebderrechtsgemeinschaft
+  FROM ax_buchungsblatt  gb 
+  JOIN alkis_beziehungen v
+    ON v.beziehung_zu = gb.gml_id AND v.beziehungsart = 'istBestandteilVon'  
+  JOIN ax_namensnummer nn 
+    ON v.beziehung_von = nn.gml_id
+  WHERE NOT nn.artderrechtsgemeinschaft IS NULL
+  ORDER BY gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung,
+           nn.laufendenummernachdin1421;
+
+COMMENT ON VIEW rechtsgemeinschaften_zum_grundbuch 
+ IS 'Rechtsgemeinschaften zum Grundbuchblatt.';
+
+-- Schritt 2: Wo gibt es mehrere zu einem GB-Blatt
 CREATE OR REPLACE VIEW rechtsgemeinschaften_zaehlen
 AS
@@ -512,14 +650,4 @@
 
 -- Schritt 3: alle vorhandenen Zeilen anzeigen zu den GB-BlÃ€ttern, bei denen es mehrere gibt.
-
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPPIEREN ++++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- +++ ToDo
-
 CREATE OR REPLACE VIEW rechtsgemeinschaften_mehrfachzeilen
 AS
@@ -565,4 +693,5 @@
      AND p.endet IS NULL
      AND p.art IN ('AOG_AUG','PNR');
+
 COMMENT ON VIEW ap_pto_muell 
  IS 'Datenanalyse: Beschriftungen aus "ap_pto", die NICHT dargestellt werden sollen.';
@@ -584,11 +713,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPPIEREN ++++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- +++ ToDo
-
 
 CREATE OR REPLACE VIEW flstnr_ohne_position
@@ -603,5 +725,24 @@
 --ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler
   ;
+
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- +++ ToDo
+
+
+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 -- Suchstring fÃŒr ALKIS-Navigation nach FS-Kennzeichen
+ FROM        ax_flurstueck     f 
+   LEFT JOIN alkis_beziehungen v  ON v.beziehung_zu = f.gml_id
+ --LEFT JOIN ap_pto            p  ON p.gml_id       = v.beziehung_von
+  WHERE v.beziehungsart is NULL
+    AND f.endet IS NULL
+--ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler
+  ;
+
 COMMENT ON VIEW flstnr_ohne_position IS 'Sicht fÃŒr Datenanalyse: FlurstÃŒcke ohne manuell gesetzte Position fÃŒr die PrÃ€sentation der FS-Nr';
+
 
 -- Umbruch im Label? z.B. "Schwimm-/nbecken"
@@ -613,4 +754,5 @@
   WHERE not schriftinhalt is null
     AND schriftinhalt like '%/n%';
+
 COMMENT ON VIEW texte_mit_umbruch 
  IS 'Sicht fÃŒr Datenanalyse: Vorkommen eines Umbruchs im Label-Text.';
@@ -624,4 +766,5 @@
    FROM ax_flurstueck f
    WHERE f.endet IS NULL;
+
 COMMENT ON VIEW flurstuecks_minmax 
  IS 'Sicht fÃŒr Datenanalyse: Maximale Ausdehnung von ax_flurstueck fuer EXTENT-Angabe im Mapfile.';
@@ -647,4 +790,5 @@
      AND r.stelle = d.stelle 
   WHERE r.endet IS NULL AND d.endet IS NULL ;
+
 COMMENT ON VIEW baurecht 
  IS 'Datenanalyse: EnstschlÃŒsselte Felder zu einer FlÃ€che des Baurechts.';
@@ -658,4 +802,5 @@
   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.';
@@ -670,4 +815,5 @@
  WHERE    endet IS NULL
  GROUP BY st_geometrytype(wkb_geometry);
+
 COMMENT ON VIEW arten_von_flurstuecksgeometrie IS 'Datenanalyse: vorkommende Geometry-Typen in Tabelle ax_flurstueck.';
 
@@ -697,4 +843,5 @@
      AND l.lage = s.lage
     WHERE l.gemeinde = 40;  -- "40" = Stadt Lage
+
 COMMENT ON VIEW adressen_hausnummern IS 'Datenanalyse: VerschlÃŒsselte Lagebezeichnung (StraÃe und Hausnummer) fÃŒr eine Gemeinde. SchlÃŒssel der Gemeinde nach Bedarf anpassen.';
 
@@ -704,10 +851,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPPIEREN ++++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- +++ ToDo
 
 CREATE OR REPLACE VIEW adressen_zum_flurstueck
@@ -737,4 +878,36 @@
        AND l.gemeinde = 40  -- "40" = Stadt Lage
      ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;
+
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- +++ ToDo
+
+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_lagebezeichnungmithausnummer l  
+        ON l.gml_id=v.beziehung_zu
+      JOIN   ax_gemeinde g 
+        ON l.kreis=g.kreis 
+       AND l.gemeinde=g.gemeinde 
+      JOIN   ax_lagebezeichnungkatalogeintrag s 
+        ON l.kreis=s.kreis 
+       AND l.gemeinde=s.gemeinde 
+       AND l.lage = s.lage
+     WHERE v.beziehungsart='weistAuf'
+       AND l.gemeinde = 40  -- "40" = Stadt Lage
+     ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;
+
 COMMENT ON VIEW adressen_zum_flurstueck IS 'Datenanalyse: Zuordnung von Adressen zu Flurstuecken. SchlÃŒssel der Gemeinde nach Bedarf anpassen.';
 
@@ -809,10 +982,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIB KOPIEREN +++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- +++ ToDo
 
 CREATE OR REPLACE VIEW flurstuecke_eines_eigentuemers 
@@ -857,4 +1024,52 @@
      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.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;
+
+
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- +++ ToDo
+
+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.wkb_geometry               AS geom,  -- fuer Export als Shape
+   -- g.bezirk, 
+      b.bezeichnung                AS bezirkname,
+      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 
+      g.blattart, 
+      s.laufendenummer             AS bvnr, 
+      art.bezeichner               AS buchgsart, 
+   -- s.zaehler || '/' || s.nenner AS buchg_anteil, 
+      n.laufendenummernachdin1421  AS name_num, 
+   -- n.zaehler || '/' || n.nenner AS nam_anteil, 
+      p.nachnameoderfirma          AS nachname --, 
+   -- p.vorname 
+   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 %'   -- ** Bei Bedarf anpassen!
+     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person
+     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch
+     AND bgs.beziehungsart = 'istBestandteilVon' -- Buchungs-Stelle >> Grundbuch
+     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> Buchungs-Stelle
+     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.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;
+
 COMMENT ON VIEW flurstuecke_eines_eigentuemers IS 'Muster fÃŒr Export: Suchkriteriumnach Bedarf anpassen.';
 
@@ -876,10 +1091,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-
-    +++ HIER HIN KOIEREN
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
 
 CREATE OR REPLACE VIEW rechte_eines_eigentuemers 
@@ -932,4 +1141,59 @@
      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.buchungsblattnummermitbuchstabenerweiterung, sh.laufendenummer;
+
+
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+
+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.wkb_geometry               AS geom,  -- fuer Export als Shape
+   -- g.bezirk, 
+      b.bezeichnung                AS bezirkname,
+      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 
+   -- g.blattart, 
+      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, 
+   -- sd.zaehler || '/' || sd.nenner AS buchg_anteil_dien,
+      n.laufendenummernachdin1421  AS name_num, 
+   -- n.zaehler || '/' || n.nenner AS nam_anteil, 
+      p.nachnameoderfirma          AS nachname --,  
+   -- p.vorname 
+   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  -- herrschende Buchung
+        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   -- dienende Buchung
+        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 %'   -- ** Bei Bedarf anpassen!
+     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person
+     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch
+     AND bgs.beziehungsart = 'istBestandteilVon' -- B-Stelle herr   >> Grundbuch
+     AND bss.beziehungsart in ('an','zu')        -- B-Stelle herr.  >> B-Stelle dien.
+     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> B-Stelle dien
+     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.buchungsblattnummermitbuchstabenerweiterung, sh.laufendenummer;
+
 COMMENT ON VIEW rechte_eines_eigentuemers IS 'Muster fÃŒr Export: Suchkriteriumnach Bedarf anpassen. Dies ergÃ€nzt "flurstuecke_eines_eigentuemers" um die FÃ€lle mit besonderen Buchungen.';
 
@@ -981,10 +1245,4 @@
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
 
-    +++ HIER HIN KOPPIEREN ++++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- +++ ToDo
-
 CREATE OR REPLACE VIEW mehrfache_buchung_zu_fs
 AS
@@ -997,4 +1255,18 @@
   HAVING count(b.ogc_fid) > 1;
 
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- +++ ToDo
+
+CREATE OR REPLACE VIEW mehrfache_buchung_zu_fs
+AS
+  SELECT f.gml_id, count(b.ogc_fid) AS anzahl
+    FROM ax_flurstueck f
+    JOIN alkis_beziehungen b
+      ON f.gml_id = b.beziehung_von 
+  WHERE b.beziehungsart = 'istGebucht'
+  GROUP BY f.gml_id
+  HAVING count(b.ogc_fid) > 1;
+
 -- Noch einfacher? - Auch ohne JOIN wird das selbe Ergebnis geliefert.
 -- Doppelte Verweise zÃ€hlen ohne zu prÃŒfen, ob die gml_id in ax_flurstueck existiert.
@@ -1043,9 +1315,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN +++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
 
 CREATE OR REPLACE VIEW adressen_zu_gebauede_mit_mehreren_hausnummern
@@ -1064,4 +1331,22 @@
    HAVING count(l.gml_id) > 1);
 
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+
+CREATE OR REPLACE VIEW adressen_zu_gebauede_mit_mehreren_hausnummern
+AS
+ SELECT l.gml_id, l.gemeinde, l.lage, l.hausnummer -- Anzeige der Adressfelder
+ FROM ax_gebaeude g1
+   JOIN alkis_beziehungen b ON b.beziehung_von = g1.gml_id
+   JOIN ax_lagebezeichnungmithausnummer l ON b.beziehung_zu = l.gml_id
+  WHERE b.beziehungsart = 'zeigtAuf' AND g1.gml_id IN -- Subquery sucht GebÃ€ude mit meherern Hausnummen
+   (SELECT g2.gml_id 
+    FROM ax_gebaeude g2
+    JOIN alkis_beziehungen b ON b.beziehung_von = g2.gml_id
+    JOIN ax_lagebezeichnungmithausnummer l ON b.beziehung_zu = l.gml_id
+   WHERE b.beziehungsart = 'zeigtAuf'
+   GROUP BY g2.gml_id 
+   HAVING count(l.gml_id) > 1);
+
 COMMENT ON VIEW adressen_zu_gebauede_mit_mehreren_hausnummern
  IS 'GebÃ€ude mit mehreren Hausnummern suchen (ist erlaubt) und dazu die Adressen anzeigen.';
@@ -1135,9 +1420,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPIEREN  +++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
 
 CREATE OR REPLACE VIEW strasse_als_gewanne
@@ -1162,4 +1442,28 @@
   ;
 
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+
+CREATE OR REPLACE VIEW strasse_als_gewanne
+AS
+  SELECT k.gemeinde, k.lage AS strassenschluessel,
+      -- k.bezeichnung      AS strassenname,
+         o.unverschluesselt AS gewanne,
+         count(fo.gml_id) AS anzahl_fs_gewanne
+  FROM ax_lagebezeichnungkatalogeintrag k   -- StraÃentabelle
+  JOIN ax_lagebezeichnungohnehausnummer o   -- Gewanne
+    ON k.bezeichnung = o.unverschluesselt   -- Gleiche Namen
+  -- Join Gewanne auf FlurstÃŒcke um nur solche FÃ€lle anzuzeigen, die verwendet werden 
+  -- UND die auch in der gleichen Gemeinde liegen.
+  -- Sonst kÃ¶nnte zufÃ€llige Namensgleichheiten aus verschiedenen Gemeinden geben. 
+  JOIN alkis_beziehungen vo
+    ON o.gml_id=vo.beziehung_zu AND vo.beziehungsart= 'zeigtAuf' 
+  JOIN ax_flurstueck fo
+    ON fo.gml_id=vo.beziehung_von
+ WHERE fo.gemeinde = k.gemeinde  -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraÃenschlÃŒssel
+  GROUP BY k.gemeinde, k.lage, o.unverschluesselt --, k.bezeichnung
+  ORDER BY k.gemeinde, k.lage, o.unverschluesselt --, k.bezeichnung
+  ;
+
 COMMENT ON VIEW strasse_als_gewanne
  IS 'Gewannenbezeichnungen, die auch als StraÃenname verwendet werden. Mit FlurstÃŒcks-ZÃ€hler.';
@@ -1171,9 +1475,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPIEREN  +++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
 
 CREATE OR REPLACE VIEW strasse_als_gewanne_flst
@@ -1195,4 +1494,25 @@
   ORDER BY fo.gemarkungsnummer, fo.flurnummer, fo.zaehler, k.gemeinde, k.bezeichnung;
 
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+
+CREATE OR REPLACE VIEW strasse_als_gewanne_flst
+AS
+  SELECT -- fo.gml_id, 
+         fo.gemarkungsnummer || '-' || fo.flurnummer || '-' || fo.zaehler::text || COALESCE ('/' || fo.nenner::text, '') AS flstkennz,
+         k.gemeinde, 
+         o.unverschluesselt AS gewanne,
+      -- k.bezeichnung AS strassenname,
+         k.lage        -- AS strassen_schluessel
+  FROM ax_lagebezeichnungkatalogeintrag k   -- StraÃentabelle
+  JOIN ax_lagebezeichnungohnehausnummer o   -- Gewanne
+    ON k.bezeichnung = o.unverschluesselt   -- Gleiche Namen 
+  JOIN alkis_beziehungen vo
+    ON o.gml_id=vo.beziehung_zu AND vo.beziehungsart= 'zeigtAuf' 
+  JOIN ax_flurstueck fo
+    ON fo.gml_id=vo.beziehung_von
+ WHERE fo.gemeinde = k.gemeinde  -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraÃenschlÃŒssel
+  ORDER BY fo.gemarkungsnummer, fo.flurnummer, fo.zaehler, k.gemeinde, k.bezeichnung;
+
 COMMENT ON VIEW strasse_als_gewanne_flst
  IS 'FlurstÃŒcke mit Gewannenbezeichnungen, die auch als StraÃenname verwendet werden.';
@@ -1206,9 +1526,4 @@
 /* 
 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPIEREN  +++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
 
 CREATE OR REPLACE VIEW nachmigration_aehnliche_anschriften
@@ -1230,4 +1545,25 @@
     ORDER BY p.nachnameoderfirma, p.vorname;
 
+*/
+-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+
+CREATE OR REPLACE VIEW nachmigration_aehnliche_anschriften
+AS
+  SELECT DISTINCT p.gml_id, p.nachnameoderfirma, p.vorname, 
+        a1.ort_post, a1.strasse AS strasse1, a2.strasse AS strasse2, a1.hausnummer
+     -- , b1.import_id AS import1, b2.import_id AS import2
+    FROM ax_person         p
+    JOIN alkis_beziehungen b1 ON b1.beziehung_von=p.gml_id
+    JOIN ax_anschrift      a1 ON a1.gml_id=b1.beziehung_zu
+    JOIN alkis_beziehungen b2 ON b2.beziehung_von=p.gml_id
+    JOIN ax_anschrift      a2 ON a2.gml_id=b2.beziehung_zu
+    WHERE b1.beziehungsart='hat' 
+      AND b2.beziehungsart='hat'
+      AND a1.gml_id    <>  a2.gml_id
+      AND a1.ort_post   =  a2.ort_post
+      AND a1.strasse    like trim(a2.strasse, '.') || '%'
+      AND a1.hausnummer =  a2.hausnummer
+    ORDER BY p.nachnameoderfirma, p.vorname;
+
 COMMENT ON VIEW nachmigration_aehnliche_anschriften
  IS 'Zu einer Person gibt es mehrere Anschriften, die in Ort und Hausnummer identisch sind und beim StraÃennemen entweder auch identisch sind oder eine AbkÃŒrzung mit Punkt enthalten.';
