Changeset 326


Ignore:
Timestamp:
08/28/14 16:45:07 (10 years ago)
Author:
frank.jaeger
Message:

laufende Arbeiten um Tabelle "alkis_beziehungen" aus den Views zu entfernen

Location:
Version-0.8/import
Files:
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • Version-0.8/import/alkis-functions.sql

    r324 r326  
    180180        EXECUTE sql; 
    181181 
    182 --      CREATE UNIQUE INDEX vobjekte_gmlid ON vobjekte(gml_id,beginnt); 
    183 --      CREATE INDEX vobjekte_table ON vobjekte(table_name); 
    184  
    185182        CREATE VIEW vbeziehungen AS 
    186183                SELECT  beziehung_von,(SELECT table_name FROM vobjekte WHERE gml_id=beziehung_von) AS typ_von 
     
    188185                        ,beziehung_zu,(SELECT table_name FROM vobjekte WHERE gml_id=beziehung_zu) AS typ_zu 
    189186                FROM alkis_beziehungen; 
    190  
    191 --      CREATE INDEX vbeziehungen_von    ON vbeziehungen(beziehung_von); 
    192 --      CREATE INDEX vbeziehungen_vontyp ON vbeziehungen(typ_von); 
    193 --      CREATE INDEX vbeziehungen_art    ON vbeziehungen(beziehungsart); 
    194 --      CREATE INDEX vbeziehungen_zu     ON vbeziehungen(beziehung_zu); 
    195 --      CREATE INDEX vbeziehungen_zutyp  ON vbeziehungen(typ_zu); 
    196187 
    197188        RETURN 'ALKIS-Views erzeugt.'; 
     
    384375-- Geaendert 2014-02-03 auf Vorschlag M.B. Krs. Unna 
    385376 
    386 /* 
    387  
    388 -- Diese Version arbeitet nur korrekt, wenn die Spalte gml_id im Format "character(16)" angelegt ist. 
    389  
    390 CREATE OR REPLACE FUNCTION delete_feature_kill() RETURNS TRIGGER AS $$ 
    391 DECLARE 
    392         query TEXT; 
    393         begsql TEXT; 
    394         aktbeg TEXT; 
    395         gml_id TEXT; 
    396         query_bez TEXT; 
    397 BEGIN 
    398         NEW.typename := lower(NEW.typename); 
    399         NEW.context := lower(NEW.context); 
    400         gml_id      := substr(NEW.featureid, 1, 16); 
    401  
    402         IF NEW.context IS NULL THEN 
    403                 NEW.context := 'delete'; 
    404         END IF; 
    405  
    406         IF NEW.context='delete' THEN -- Ersatzloses Loeschen des Objektes 
    407           -- In der Objekt-Tabelle 
    408                 EXECUTE 'DELETE FROM ' || NEW.typename || ' WHERE gml_id = ''' || gml_id || ''''; 
    409           -- Beziehungen von und zu dem Objekt sind hinfaellig 
    410                 EXECUTE 'DELETE FROM alkis_beziehungen WHERE beziehung_von = ''' || gml_id || ''' OR beziehung_zu = ''' || gml_id || ''''; 
    411                 --RAISE NOTICE 'Lösche gml_id % in % und Beziehungen', gml_id, NEW.typename; 
    412  
    413         ELSE -- Ersetzen eines Objektes (Replace). In der Objekt-Tabelle sind jetzt bereits 2 Objekte vorhanden (alt und neu). 
    414                 -- beginnt-Wert des aktuellen Objektes ermitteln 
    415                 begsql := 'SELECT max(beginnt) FROM ' || NEW.typename || ' WHERE gml_id = ''' || substr(NEW.replacedBy, 1, 16) || ''' AND endet IS NULL'; 
    416                 EXECUTE begsql INTO aktbeg; 
    417                 -- Alte Objekte entfernen 
    418                 EXECUTE 'DELETE FROM ' || NEW.typename || ' WHERE gml_id = ''' || gml_id || ''' AND beginnt < ''' || aktbeg || ''''; 
    419                 -- Beziehungen vom alten Objekt entfernen, die aus frueheren Importen stammen 
    420                 EXECUTE 'DELETE FROM alkis_beziehungen WHERE beziehung_von = ''' || gml_id || ''' AND import_id < (SELECT max(id) FROM import)'; 
    421         END IF; 
    422  
    423         NEW.ignored := false; 
    424         RETURN NEW; 
    425 END; 
    426 $$ LANGUAGE plpgsql; 
    427  
    428 */ 
    429  
    430377-- 2014-08-27: Anpassung an vereinheitlichtes Datenbank-Schema. 
    431378-- Wenn die Spalte gml_id im Format "character varying" (ohne LÀngenbegrenzung) angelegt wird, 
  • Version-0.8/import/alkis_PostNAS_schema_ohneHist.sql

    r324 r326  
    44-- ***************************** 
    55-- 
    6 -- Datenbankstruktur PostNAS 0.7 
     6-- Datenbankstruktur PostNAS 0.8 
    77-- 
    88 
     
    1414--                Dies setzt voraus, dass als Trigger-Function die Version "kill" eingerichtet wurde. 
    1515 
     16-- 2014-08-28 FJ: Version 0.8 - zunÀchst ÃŒbernommen, aber ... 
     17--                Mittelfristig ÃŒberlegen, ob "delete_feature_hist" ohne "identifier" auskommt. 
     18--                Der gleiche SchlÃŒssel steht auch in "gml_id". Dann gnz aus dem Schema entfernen. 
    1619 
    1720-- Die Spalte identifier aus allen Tabellen entfernen. 
    1821-- Dies erledigt eine Function aus "alkis-functions.sql". 
    19 -- Diese Spalte wird (ausschließlich?) vom Trigger fÃŒr Historie verwendet. 
     22-- Diese Spalte wird (ausschließlich) vom Trigger fÃŒr Historie verwendet. 
     23 
    2024SELECT alkis_drop_all_identifier(); 
    2125 
    2226 
    23 -- Diese Function kann nun nicht mehr ausgefÃŒhrt werden. 
     27-- Die Function "delete_feature_hist" kann nun nicht mehr ausgefÃŒhrt werden. 
     28 
    2429DROP FUNCTION delete_feature_hist(); 
    2530 
    2631-- 
    27 --          THE  (happy)  END 
     32--      THE  (happy)  END 
    2833-- 
  • Version-0.8/import/datenbank_anlegen.sh

    r324 r326  
    66## 
    77## Stand: 
    8 ##  2012-02-10 PostNAS 07, Umbenennung 
    9 ##  2013-01-15 Zwischenstopp um Meldungen lesen zu können bevor, sie aus dem Scrollbereich verschwinden 
    10 ##  2013-04-16 Vers.-Nr. "0.7" aus dem Dateinamen von Schema und Keytable entfernt, sichten_wms.sql 
     8##  2012-02-10 F.J. krz: PostNAS 07, Umbenennung 
     9##  2013-01-15 F.J. krz: Zwischenstopp um Meldungen lesen zu können bevor, sie aus dem Scrollbereich verschwinden 
     10##  2013-04-16 F.J. krz: Vers.-Nr. "0.7" aus dem Dateinamen von Schema und Keytable entfernt, sichten_wms.sql 
    1111##  2013-10-16 F.J. krz: Neues Sript "pp_praesentation_sichten.sql" fÃŒr Reparatur PrÀsentationsobjekte Straßennamen 
    1212##  2013-12-03 F.J. krz: Script "sichten.sql" einbeziehen. Darin View "doppelverbindung" fuer WMS FS-Kommunal. 
    1313##  2014-01-31 F.J. krz: Unterschiede der Datenbank-Struktur fÃŒr die Varianten MIT/OHNE Historie. 
    14 ##  2014-08-26 F.J. krz: Feinheiten, Kommentare 
     14##  2014-08-28 F.J. krz: PostNAS 08 - Umbenennung, Feinheiten, Kommentare 
    1515 
    1616POSTNAS_HOME=$(dirname $0) 
     
    4848        done 
    4949} 
    50 # 
     50 
    5151## aller Laster  ANFANG 
    5252get_db_config; 
     
    8888 
    8989echo "  
    90 ** Anlegen der Datenbank-Struktur fuer PostNAS (alkis_PostNAS_0.7_schema.sql)" 
     90** Anlegen der Datenbank-Struktur fuer PostNAS 0.8 (alkis_PostNAS_schema.sql)" 
    9191psql $con -v alkis_epsg=$EPSG -U ${DBUSER} -f alkis_PostNAS_schema.sql >$MANDANT_HOME/log/schema.log 
    9292 
     
    105105 
    106106## Kommentar zur Datenbank (allgemein) 
    107 psql $con -U ${DBUSER} -c "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.7';" 
     107psql $con -U ${DBUSER} -c "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.8';" 
    108108 
    109109## Kann man das Ziel des Symlinks abfragen? Wenn Kill, dann ... 
     
    115115        ## Import-ID: Tabelle und Spalte in "alkis_beziehungen" anlegen 
    116116 
    117         # psql $con -U ${DBUSER} -f alkis_PostNAS_schema_ohneHist.sql >$MANDANT_HOME/log/schema.log 
    118         # psql $con -U ${DBUSER} -c "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.7 - Ohne Historie';" 
     117        psql $con -U ${DBUSER} -f alkis_PostNAS_schema_ohneHist.sql >$MANDANT_HOME/log/schema.log 
     118        psql $con -U ${DBUSER} -c "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.8 - Ohne Historie';" 
    119119 
    120120## fi 
  • Version-0.8/import/konv_batch.sh

    r318 r326  
    2727##   2012-10-30 Umgebungsvariable setzen, delete-Tabelle am Ende fuer Analyse gefuellt lassen. 
    2828##              Test als 0.7a mit gepatchter gdal-Version (noch 2.0dev) 
    29 ##   2013-10-16 F.J. krz: Neues Script "pp_praesentation_action.sql" für Reparatur der  
    30 ##              Präsentationsobjekte Straßenname im Post-Processing 
    31 ##   2013-10-24 F.J. krz: Zwischenlösung "praesentation_action.sql" wieder deaktiviert. 
     29##   2013-10-16 F.J. krz: Neues Script "pp_praesentation_action.sql" fÃŒr Reparatur der  
     30##              PrÀsentationsobjekte Straßenname im Post-Processing 
     31##   2013-10-24 F.J. krz: Zwischenlösung "praesentation_action.sql" wieder deaktiviert. 
    3232##   2014-01-31 F.J. krz: Import Eintrag erzeugen (nach Vorschlag Marvin Brandt, Unna) 
    3333##   2014-02-13 A.Emde WhereGroup: EinfÃŒhrung DBUSER, damit im Skript der Datenbankbenutzer angegeben werden kann 
    34 ## 
     34##   2014-05-12 F.J. krz: Unterschiedliche Pfade in Test (TRUNK) und Produktion (Rel. 1.11.0) 
     35##   2014-06-18 F.J. DB-User nicht "postgres" (in $con).  
     36##                   Konverter ind Nacharbeiten sonst mit unterschiedlichem User. 
     37##                   Abgleich Test/Prod-Version. 
     38##                   Entfernen der historischen Objekte nach Konvertierung. 
     39##   2014-08-28 F.J. krz: Parameter "--config PG_USE_COPY YES" zur Beschleunigung  
     40 
    3541## ToDo: Option "-skipfailures" nach Test entfernen ? 
    36 ## 
     42 
    3743## Koordinaten: EPSG:25832  UTM, Zone 32 
    3844##              -a_srs EPSG:25832   - bleibt im UTM-System (korrigierte Werte) 
     
    4248 
    4349# Konverterpfad 
    44 PATH=/opt/gdal-2.0/bin:$PATH 
     50 
     51# TRUNK-Version (immer letzter Stand der Entwicklung) 
     52  PATH=/opt/gdal-2.0/bin:$PATH 
     53 
     54# Release GDAL 1.11.0 vom April 2014 
     55# PATH=/opt/gdal-1.11/bin:$PATH 
     56 
    4557EPSG=25832 
    46 DBUSER=postgres 
     58  
     59#DBUSER=postgres 
     60DBUSER=b600352 
    4761 
    4862if [ $DBUSER == "" ] 
     
    5973  OGRPGUSER=" user=${DBUSER}" 
    6074fi 
    61  
    62 echo "**************************************************" 
    63 echo "**   K o n v e r t i e r u n g     PostNAS 0.7a **" 
    64 echo "**************************************************" 
     75  
     76echo "**********************************************" 
     77echo "**   K o n v e r t i e r u n g     PostNAS **" 
     78echo "**********************************************" 
    6579## Parameter: 
    6680ORDNER=$1 
     
    104118        fi 
    105119fi 
     120 
     121# 
    106122# Fehlerprotokoll: 
     123# 
    107124  errprot=${POSTNAS_HOME}'/log/postnas_err_'$DBNAME'.prot' 
    108 # 
     125 
     126  echo "GDAL/PostNAS Konverter-Version:" >> $errprot 
     127  ogr2ogr --version >> $errprot 
     128 
    109129# DB-Connection 
    110130  con="${PGUSER} -p 5432 -d ${DBNAME} " 
     
    118138  echo "POSTNAS_HOME ${POSTNAS_HOME}" 
    119139  echo " " 
    120 # noch alte delete-Eintraege in DB? 
     140 
     141  # noch alte delete-Eintraege in DB? 
    121142  echo "Leeren der delete-Tabelle" 
    122143  echo 'TRUNCATE table "delete";' | psql $con  
     
    125146# Import Eintrag erzeugen 
    126147# 
    127 # Die dadurch erzeugte Import-ID dient zur Steuerung des Löschens alter Relationen im Trigger.  
     148# Die dadurch erzeugte Import-ID dient zur Steuerung des Löschens alter Relationen im Trigger.  
    128149# Wird die Datenbank MIT Historie geladen, muss die folgende Zeile auskommentiert werden. 
    129150echo "INSERT INTO import (datum,verzeichnis,importart) VALUES ('"$(date '+%Y-%m-%d %H:%M:%S')"','"${ORDNER}"','"${verarb}"');" | psql $con 
     
    166187  echo " " 
    167188  echo "** Ende Konvertierung Ordner ${ORDNER}" 
     189 
    168190# 
    169191# Post-Processing / Nacharbeiten 
     
    174196    # Dies kann sinnvoll sein, wenn mehrere kleine Aktualisierungen hintereinander auf einem grossen Bestand laufen 
    175197    # Der Aufwand fuer das Post-Processing ist dann nur bei der LETZTEN Aktualisierung notwendig. 
     198 
    176199  else 
     200 
    177201    echo "** Post-Processing (Nacharbeiten zur Konvertierung)" 
    178202 
    179203    echo "** - Optimierte Nutzungsarten neu Laden:" 
    180204    (cd $POSTNAS_HOME; psql $con -f nutzungsart_laden.sql) 
     205  
    181206    echo "-----------"  
    182  
    183     echo "** - Fluren / Gemarkungen / Gemeinden neu Laden:" 
     207  
     208    echo "** - Fluren, Gemarkungen, Gemeinden und Straßen-Namen neu Laden:" 
    184209    (cd $POSTNAS_HOME; psql $con -f pp_laden.sql) 
    185210 
    186  
    187     # echo "** - Präsentationsobjekte generieren:" 
     211    # echo "** - PrÀsentationsobjekte generieren:" 
    188212    # (cd $POSTNAS_HOME; psql $con -f pp_praesentation_action.sql) 
    189213 
    190214  fi 
    191 # 
     215 
    192216  if [ "$(readlink $POSTNAS_HOME/alkis-trigger.sql)" = "alkis-trigger-kill.sql" ]; then 
    193 # Durch Einfuegen in Tabelle 'delete' werden Loeschungen anderer Tabellen getriggert 
    194     echo "** delete-Tabelle enthaelt:" 
    195     echo 'SELECT COUNT(featureid) AS delete_zeilen FROM "delete";' | psql $con 
    196     #echo "   delete-Tabelle loeschen:" 
    197     #echo 'TRUNCATE table "delete";' | psql $con 
    198  # Fuer Analyse-Zwecke sollten die Delete-Eintraege erhalten bleiben bis zum naechsten Lauf. 
    199  # TRUNCATE erfolgt VOR der Konnvertierung. 
    200 # 
    201 # Wenn die Datenbank MIT Historie angelegt wurde, man diese aber gar nicht braucht, 
    202 # dann hinterher aufraeumen der historischen Objekte  
    203     #echo "** geendete Objekte entfernen:" 
    204 # Function: 
    205     #echo 'SELECT alkis_delete_all_endet();' | psql $con 
    206     #echo "  ... geendete Objekte entfernen wurde fuer Test dektiviert." 
    207     #echo "  Bitte manuell ausfuehren:  SELECT alkis_delete_all_endet(); " 
     217 
     218     # Durch Einfuegen in Tabelle 'delete' werden Loeschungen anderer Tabellen getriggert 
     219     echo "** delete-Tabelle enthaelt:" 
     220     psql $con -c 'SELECT COUNT(featureid) AS delete_zeilen FROM "delete";' 
     221 
     222     echo "   delete-Tabelle loeschen:" 
     223     psql $con -c 'TRUNCATE table "delete";' 
     224 
     225    # Wenn die Datenbank MIT Historie geladen wurde, man diese aber gar nicht braucht, 
     226    # dann hinterher aufraeumen der historischen Objekte  
     227    echo "** geendete Objekte entfernen:" 
     228 
     229    # Function: 
     230    psql $con -c "SELECT alkis_delete_all_endet();" 
     231 
    208232  fi 
     233 
    209234  echo "Das Fehler-Protokoll wurde ausgegeben in die Datei $errprot" 
    210235  #echo "HINWEIS: -skipfailures  fuer Produktion wieder einschalten." 
     236  
  • Version-0.8/import/sichten.sql

    r324 r326  
    3030--  2014-01-31 Kommentar 
    3131--  2014-02-06 nachmigration_aehnliche_anschriften 
    32 --  2014-08-27 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen. 
     32--  2014-08-28 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen. 
    3333--             Relationen nun direkt ÃŒber neue Spalten in den Objekttabellen.  
     34 
     35     -- IN ARBEIT +++ erst teilweise umgestellt 
    3436 
    3537 
     
    5052 
    5153--           DROP VIEW public.doppelverbindung; 
    52 /*  
    53 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    54 CREATE OR REPLACE VIEW public.doppelverbindung 
    55 AS 
    56   SELECT v1.beziehung_von AS fsgml,       -- gml_id auf FlurstÃŒck - Seite 
    57          v1.beziehung_zu  AS bsgml,       -- gml_id auf Buchungs  - Seite 
    58       --'direkt' AS fall, 
    59          0 AS ba_dien 
    60     FROM alkis_beziehungen v1 
    61    WHERE v1.beziehungsart = 'istGebucht'  -- FS --> Buchung 
    62  UNION 
    63   -- Buchungstelle  >an>  Buchungstelle  >istBestandteilVon>  BLATT  
    64   SELECT v2.beziehung_von AS fsgml,        -- gml_id auf FlurstÃŒck - Seite 
    65          an.beziehung_von AS bsgml,        -- gml_id auf Buchungs  - Seite (herrschendes GB) 
    66       --'Recht an' AS fall, 
    67          dien.buchungsart AS ba_dien       -- Ein Feld aus der Zwischen-Buchung zur Fall-Unterscheidung 
    68     FROM alkis_beziehungen v2 
    69     JOIN ax_buchungsstelle dien 
    70       ON  v2.beziehung_zu = dien.gml_id 
    71     JOIN alkis_beziehungen an 
    72       ON dien.gml_id = an.beziehung_zu 
    73    WHERE v2.beziehungsart = 'istGebucht'   -- FS --> Buchung 
    74      AND an.beziehungsart = 'an'; 
    75 */ 
    76  
    77 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     54 
    7855CREATE OR REPLACE VIEW public.doppelverbindung 
    7956AS 
     
    10178 
    10279 
    103  
    10480-- Ein View, der die Verbindung von FlurstÃŒck zur Straßentabelle fÃŒr zwei verschiedene FÀlle herstellt. 
    10581-- Einmal ÃŒber die Lagebezeichnung MIT Hausnummer und einmal OHNE. 
     
    10783 
    10884--           DROP VIEW public.flst_an_strasse; 
    109 /*  
    110 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    111  
    112 CREATE OR REPLACE VIEW public.flst_an_strasse 
    113 AS 
    114   SELECT vm.beziehung_von AS fsgml,          -- Join auf "gml_id" aus "ax_flurstÃŒck" 
    115          sm.gml_id AS stgml,                 -- Filter: gml_id der Straße 
    116       -- sm.gemeinde, sm.lage,               -- Gemeinde- und Straßenschluessel als Filter? 
    117          'm' AS fall                         -- SÀtze unterschieden: Mit HsNr 
    118     FROM alkis_beziehungen vm                -- Verbindung Mit 
    119     JOIN ax_lagebezeichnungmithausnummer lm  -- Lage MIT 
    120       ON lm.gml_id=vm.beziehung_zu 
    121      AND vm.beziehungsart= 'weistAuf'  
    122     JOIN ax_lagebezeichnungkatalogeintrag sm -- Ausnahmsweise mal direkt und nicht ÃŒber die "alkis_beziehungen" 
    123       ON lm.land=sm.land  
    124      AND lm.regierungsbezirk=sm.regierungsbezirk  
    125      AND lm.kreis=sm.kreis  
    126      AND lm.gemeinde=sm.gemeinde  
    127      AND lm.lage=sm.lage  
    128  UNION 
    129   SELECT vo.beziehung_von AS fsgml,          -- Join auf gml_id aus ax_flurstÃŒck 
    130          so.gml_id AS stgml,                 -- Filter: gml_id der Straße 
    131       -- so.gemeinde, so.lage                -- Gemeinde- und Straßenschluessel als Filter? 
    132          'o' AS fall                         -- SÀtze unterschieden: Ohne HsNr 
    133     FROM alkis_beziehungen vo                -- Verbindung OHNE 
    134     JOIN ax_lagebezeichnungohnehausnummer lo -- Lage OHNE 
    135       ON lo.gml_id=vo.beziehung_zu 
    136      AND vo.beziehungsart= 'zeigtAuf'  
    137     JOIN ax_lagebezeichnungkatalogeintrag so -- Straße OHNE 
    138       ON lo.land=so.land  
    139      AND lo.regierungsbezirk=so.regierungsbezirk  
    140      AND lo.kreis=so.kreis  
    141      AND lo.gemeinde=so.gemeinde  
    142      AND lo.lage=so.lage; 
    143  
    144 */ 
    145  
    146 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     85 
    14786CREATE OR REPLACE VIEW public.flst_an_strasse 
    14887AS 
     
    200139/*  
    201140-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    202  
    203     +++ HIER HIN KOPPIEREN ++++ 
    204  
    205 */ 
    206 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    207 -- +++ ToDo 
    208  
    209  
    210141CREATE OR REPLACE VIEW exp_csv 
    211142AS 
     
    311242           nn.laufendenummernachdin1421; 
    312243 
     244*/ 
     245-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     246-- +++ ToDo 
     247 
     248 
     249CREATE OR REPLACE VIEW exp_csv 
     250AS 
     251 SELECT 
     252  -- FlurstÃŒck 
     253    f.gml_id                             AS fsgml,       -- möglicher Filter FlurstÃŒcks-GML-ID 
     254    f.flurstueckskennzeichen             AS fs_kennz, 
     255    f.gemarkungsnummer,                                  -- Teile des FS-Kennz. noch mal einzeln 
     256    f.flurnummer, f.zaehler, f.nenner,  
     257    f.amtlicheflaeche                    AS fs_flae, 
     258    g.bezeichnung                        AS gemarkung, 
     259 
     260  -- Grundbuch 
     261    gb.gml_id                            AS gbgml,       -- möglicher Filter Grundbuch-GML-ID 
     262    gb.bezirk                            AS gb_bezirk, 
     263    gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 
     264    z.bezeichnung                        AS beznam,      -- GB-Bezirks-Name 
     265 
     266  -- Buchungsstelle (GrundstÃŒck) 
     267    s.laufendenummer                     AS bu_lfd,      -- BVNR 
     268    --s.zaehler, s.nenner,                                -- Anteil des GB am FS, einzelne Felder 
     269    '=' || s.zaehler || '/' || s.nenner  AS bu_ant,      -- als Excel-Formel (nur bei Wohnungsgrundbuch JOIN ÃŒber 'Recht an') 
     270    s.buchungsart,                                       -- verschlÃŒsselt 
     271    b.bezeichner                         AS bu_art,      -- Buchungsart entschlÃŒsselt 
     272 
     273  -- NamensNummer (Normalfall mit Person) 
     274    nn.laufendenummernachdin1421         AS nam_lfd,  
     275    '=' || nn.zaehler|| '/' || nn.nenner AS nam_ant,         -- als Excel-Formel 
     276 
     277  -- Rechtsgemeinsachaft (Sonderfall von Namensnummer, ohne Person, ohne Nummer) 
     278    rg.artderrechtsgemeinschaft          AS nam_adr, 
     279    rg.beschriebderrechtsgemeinschaft    AS nam_bes, 
     280 
     281  -- Person 
     282    p.gml_id                             AS psgml,           -- möglicher Filter Personen-GML-ID 
     283    p.anrede, 
     284    p.vorname, 
     285    p.namensbestandteil, 
     286    p.nachnameoderfirma,                                     -- Familienname 
     287    p.geburtsdatum, 
     288    --p.geburtsname, p.akademischergrad  
     289  
     290  -- Adresse der Person 
     291    a.postleitzahlpostzustellung         AS plz, 
     292    a.ort_post                           AS ort,             -- Anschreifenzeile 1: PLZ+Ort 
     293    a.strasse,  a.hausnummer,                                -- Anschriftenzeile 2: Straße+HsNr 
     294    a.bestimmungsland                    AS land 
     295 
     296  FROM ax_flurstueck    f               -- FlurstÃŒck 
     297  JOIN doppelverbindung d               -- beide FÀlle ÃŒber Union-View: direkt und ÃŒber Recht von Buchung an Buchung 
     298    ON d.fsgml = f.gml_id  
     299  JOIN ax_gemarkung g                   -- entschlÃŒsseln 
     300    ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
     301  JOIN ax_buchungsstelle s              -- Buchungs-Stelle 
     302    ON d.bsgml = s.gml_id  
     303  JOIN ax_buchungsstelle_buchungsart b  -- EnstschlÃŒsselung der Buchungsart 
     304    ON s.buchungsart = b.wert  
     305  JOIN ax_buchungsblatt  gb             -- Buchung >istBestandteilVon> Grundbuchblatt 
     306    ON gb.gml_id = s.istbestandteilvon 
     307  JOIN ax_buchungsblattbezirk z  
     308    ON gb.land=z.land AND gb.bezirk=z.bezirk  
     309  JOIN ax_namensnummer nn               -- Blatt <istBestandteilVon< NamNum 
     310    ON gb.gml_id = nn.istbestandteilvon 
     311  JOIN ax_person p                      -- NamNum >benennt> Person  
     312    ON p.gml_id = nn.benennt 
     313  LEFT JOIN ax_anschrift a  
     314    ON a.gml_id = ANY (p.hat) 
     315 
     316 
     317-- +++++ BIS HIER BEARBEITET (28.08.) - "alkis_beziehungen" entfernt - HIER Weiter !!!! 
     318 
     319 
     320  -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery: 
     321  -- Noch mal "GB -> NamNum", aber dieses Mal fÃŒr "Rechtsgemeinschaft". 
     322  -- Kommt max. 1 mal je GB vor und hat keine Relation auf Person. 
     323  LEFT JOIN 
     324   ( SELECT v7.beziehung_zu, 
     325            rg.artderrechtsgemeinschaft,  
     326            rg.beschriebderrechtsgemeinschaft  
     327       FROM ax_namensnummer rg  
     328       JOIN alkis_beziehungen v7              -- Blatt  --> NamNum (Rechtsgemeinschaft)  
     329         ON v7.beziehung_von = rg.gml_id 
     330      WHERE v7.beziehungsart = 'istBestandteilVon' 
     331        AND NOT rg.artderrechtsgemeinschaft IS NULL 
     332   ) AS rg                         -- Rechtsgemeinschaft 
     333   ON rg.beziehung_zu = gb.gml_id  -- zum GB 
     334 
     335  ORDER BY f.flurstueckskennzeichen,  
     336           gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer, 
     337           nn.laufendenummernachdin1421; 
     338 
    313339COMMENT ON VIEW exp_csv  
    314340 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.'; 
     
    326352/*  
    327353-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    328  
    329     +++ HIER HIN KOPPIEREN ++++ 
    330  
    331 */ 
    332 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    333 -- +++ ToDo 
    334  
    335354 
    336355CREATE OR REPLACE VIEW exp_csv_str 
     
    443462           nn.laufendenummernachdin1421; 
    444463 
     464*/ 
     465-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     466-- +++ ToDo 
     467 
     468 
     469CREATE OR REPLACE VIEW exp_csv_str 
     470AS 
     471 SELECT 
     472    l.stgml,                                             -- Filter: Straßen-GML-ID 
     473 
     474  -- FlurstÃŒck 
     475    f.gml_id                             AS fsgml,       -- Gruppenwechsel fÃŒr "function lage_zum_fs" in alkisexport.php 
     476    f.flurstueckskennzeichen             AS fs_kennz, 
     477    f.gemarkungsnummer,                                  -- Teile des FS-Kennz. noch mal einzeln 
     478    f.flurnummer, f.zaehler, f.nenner,  
     479    f.amtlicheflaeche                    AS fs_flae, 
     480    g.bezeichnung                        AS gemarkung, 
     481 
     482  -- Grundbuch 
     483  --gb.gml_id                            AS gbgml,       -- möglicher Filter Grundbuch-GML-ID 
     484    gb.bezirk                            AS gb_bezirk, 
     485    gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 
     486    z.bezeichnung                        AS beznam,      -- GB-Bezirks-Name 
     487 
     488  -- Buchungsstelle (GrundstÃŒck) 
     489    s.laufendenummer                     AS bu_lfd,      -- BVNR 
     490    --s.zaehler, s.nenner,                                -- Anteil des GB am FS, einzelne Felder 
     491    '=' || s.zaehler || '/' || s.nenner  AS bu_ant,      -- als Excel-Formel (nur bei Wohnungsgrundbuch JOIN ÃŒber 'Recht an') 
     492    s.buchungsart,                                       -- verschlÃŒsselt 
     493    b.bezeichner                         AS bu_art,      -- Buchungsart entschlÃŒsselt 
     494 
     495  -- NamensNummer (Normalfall mit Person) 
     496    nn.laufendenummernachdin1421         AS nam_lfd,  
     497    '=' || nn.zaehler|| '/' || nn.nenner AS nam_ant,         -- als Excel-Formel 
     498 
     499  -- Rechtsgemeinsachaft (Sonderfall von Namensnummer, ohne Person, ohne Nummer) 
     500    rg.artderrechtsgemeinschaft          AS nam_adr, 
     501    rg.beschriebderrechtsgemeinschaft    AS nam_bes, 
     502 
     503  -- Person 
     504  --p.gml_id                             AS psgml,           -- möglicher Filter Personen-GML-ID 
     505    p.anrede, 
     506    p.vorname, 
     507    p.namensbestandteil, 
     508    p.nachnameoderfirma,                                     -- Familienname 
     509    p.geburtsdatum, 
     510    --p.geburtsname, p.akademischergrad  
     511  
     512  -- Adresse der Person 
     513    a.postleitzahlpostzustellung         AS plz, 
     514    a.ort_post                           AS ort,             -- Anschreifenzeile 1: PLZ+Ort 
     515    a.strasse,  a.hausnummer,                                -- Anschriftenzeile 2: Straße+HsNr 
     516    a.bestimmungsland                    AS land 
     517 
     518  FROM ax_flurstueck    f               -- FlurstÃŒck 
     519 
     520  JOIN flst_an_strasse  l               -- Lage (hier zusÀtzlicher JOIN gegenÃŒber Version "exp_csv")  
     521        ON l.fsgml = f.gml_id  
     522 
     523  JOIN doppelverbindung d               -- beide FÀlle ÃŒber Union-View: direkt und ÃŒber Recht von Buchung an Buchung 
     524    ON d.fsgml = f.gml_id  
     525 
     526  JOIN ax_gemarkung g                   -- entschlÃŒsseln 
     527    ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer  
     528 
     529  JOIN ax_buchungsstelle s              -- Buchungs-Stelle 
     530    ON d.bsgml = s.gml_id  
     531  JOIN ax_buchungsstelle_buchungsart b  -- EnstschlÃŒsselung der Buchungsart 
     532    ON s.buchungsart = b.wert  
     533 
     534  JOIN alkis_beziehungen v3             -- Buchung --> Grundbuchblatt 
     535    ON s.gml_id = v3.beziehung_von AND v3.beziehungsart = 'istBestandteilVon' 
     536  JOIN ax_buchungsblatt  gb  
     537    ON v3.beziehung_zu = gb.gml_id  
     538 
     539  JOIN ax_buchungsblattbezirk z  
     540    ON gb.land=z.land AND gb.bezirk=z.bezirk  
     541 
     542  JOIN alkis_beziehungen v4             -- Blatt  --> NamNum 
     543    ON v4.beziehung_zu = gb.gml_id AND v4.beziehungsart = 'istBestandteilVon'   
     544  JOIN ax_namensnummer nn  
     545    ON v4.beziehung_von = nn.gml_id 
     546 
     547  JOIN alkis_beziehungen v5             -- NamNum --> Person  
     548   -- 2014-01-20: Mit LEFT ab hier werden auch NumNum-Zeilen mit "Beschreibung der Rechtsgemeinschaft" geliefert (ohne Person) 
     549    ON v5.beziehung_von = nn.gml_id AND v5.beziehungsart = 'benennt' 
     550  JOIN ax_person p 
     551    ON v5.beziehung_zu = p.gml_id 
     552 
     553  LEFT JOIN alkis_beziehungen v6        -- Person --> Anschrift 
     554    ON v6.beziehung_von = p.gml_id AND v6.beziehungsart = 'hat'  
     555  LEFT JOIN ax_anschrift a  
     556    ON v6.beziehung_zu = a.gml_id 
     557 
     558  -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery: 
     559 
     560  -- Noch mal "GB -> NamNum", aber dieses Mal fÃŒr "Rechtsgemeinschaft". 
     561  -- Kommt max. 1 mal je GB vor und hat keine Relation auf Person. 
     562  LEFT JOIN 
     563   ( SELECT v7.beziehung_zu, 
     564            rg.artderrechtsgemeinschaft,  
     565            rg.beschriebderrechtsgemeinschaft  
     566       FROM ax_namensnummer rg  
     567       JOIN alkis_beziehungen v7              -- Blatt  --> NamNum (Rechtsgemeinschaft)  
     568         ON v7.beziehung_von = rg.gml_id 
     569      WHERE v7.beziehungsart = 'istBestandteilVon' 
     570        AND NOT rg.artderrechtsgemeinschaft IS NULL 
     571   ) AS rg                         -- Rechtsgemeinschaft 
     572   ON rg.beziehung_zu = gb.gml_id  -- zum GB 
     573 
     574  ORDER BY f.flurstueckskennzeichen,  
     575           gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer, 
     576           nn.laufendenummernachdin1421; 
     577 
    445578COMMENT ON VIEW exp_csv_str  
    446579 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.'; 
     
    460593/*  
    461594-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    462  
    463     +++ HIER HIN KOPPIEREN ++++ 
    464  
    465 */ 
    466 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    467 -- +++ ToDo 
    468  
    469595 
    470596CREATE OR REPLACE VIEW rechtsgemeinschaften_zum_grundbuch 
     
    485611           nn.laufendenummernachdin1421; 
    486612 
    487 COMMENT ON VIEW rechtsgemeinschaften_zum_grundbuch  
    488  IS 'Rechtsgemeinschaften zum Grundbuchblatt.'; 
    489  
    490 -- Schritt 2: Wo gibt es mehrere zu einem GB-Blatt 
    491  
    492 /*  
    493 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    494  
    495     +++ HIER HIN KOPPIEREN ++++ 
    496  
    497613*/ 
    498614-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    499615-- +++ ToDo 
    500616 
     617 
     618CREATE OR REPLACE VIEW rechtsgemeinschaften_zum_grundbuch 
     619AS 
     620 SELECT 
     621     gb.gml_id, 
     622     gb.bezirk, 
     623     gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 
     624     nn.artderrechtsgemeinschaft, 
     625     nn.beschriebderrechtsgemeinschaft 
     626  FROM ax_buchungsblatt  gb  
     627  JOIN alkis_beziehungen v 
     628    ON v.beziehung_zu = gb.gml_id AND v.beziehungsart = 'istBestandteilVon'   
     629  JOIN ax_namensnummer nn  
     630    ON v.beziehung_von = nn.gml_id 
     631  WHERE NOT nn.artderrechtsgemeinschaft IS NULL 
     632  ORDER BY gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, 
     633           nn.laufendenummernachdin1421; 
     634 
     635COMMENT ON VIEW rechtsgemeinschaften_zum_grundbuch  
     636 IS 'Rechtsgemeinschaften zum Grundbuchblatt.'; 
     637 
     638-- Schritt 2: Wo gibt es mehrere zu einem GB-Blatt 
    501639CREATE OR REPLACE VIEW rechtsgemeinschaften_zaehlen 
    502640AS 
     
    512650 
    513651-- Schritt 3: alle vorhandenen Zeilen anzeigen zu den GB-BlÀttern, bei denen es mehrere gibt. 
    514  
    515 /*  
    516 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    517  
    518     +++ HIER HIN KOPPIEREN ++++ 
    519  
    520 */ 
    521 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    522 -- +++ ToDo 
    523  
    524652CREATE OR REPLACE VIEW rechtsgemeinschaften_mehrfachzeilen 
    525653AS 
     
    565693     AND p.endet IS NULL 
    566694     AND p.art IN ('AOG_AUG','PNR'); 
     695 
    567696COMMENT ON VIEW ap_pto_muell  
    568697 IS 'Datenanalyse: Beschriftungen aus "ap_pto", die NICHT dargestellt werden sollen.'; 
     
    584713/*  
    585714-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    586  
    587     +++ HIER HIN KOPPIEREN ++++ 
    588  
    589 */ 
    590 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    591 -- +++ ToDo 
    592  
    593715 
    594716CREATE OR REPLACE VIEW flstnr_ohne_position 
     
    603725--ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler 
    604726  ; 
     727 
     728*/ 
     729-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     730-- +++ ToDo 
     731 
     732 
     733CREATE OR REPLACE VIEW flstnr_ohne_position 
     734AS  
     735 SELECT f.gml_id,  
     736        f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS such -- Suchstring fÃŒr ALKIS-Navigation nach FS-Kennzeichen 
     737 FROM        ax_flurstueck     f  
     738   LEFT JOIN alkis_beziehungen v  ON v.beziehung_zu = f.gml_id 
     739 --LEFT JOIN ap_pto            p  ON p.gml_id       = v.beziehung_von 
     740  WHERE v.beziehungsart is NULL 
     741    AND f.endet IS NULL 
     742--ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler 
     743  ; 
     744 
    605745COMMENT ON VIEW flstnr_ohne_position IS 'Sicht fÃŒr Datenanalyse: FlurstÃŒcke ohne manuell gesetzte Position fÃŒr die PrÀsentation der FS-Nr'; 
     746 
    606747 
    607748-- Umbruch im Label? z.B. "Schwimm-/nbecken" 
     
    613754  WHERE not schriftinhalt is null 
    614755    AND schriftinhalt like '%/n%'; 
     756 
    615757COMMENT ON VIEW texte_mit_umbruch  
    616758 IS 'Sicht fÃŒr Datenanalyse: Vorkommen eines Umbruchs im Label-Text.'; 
     
    624766   FROM ax_flurstueck f 
    625767   WHERE f.endet IS NULL; 
     768 
    626769COMMENT ON VIEW flurstuecks_minmax  
    627770 IS 'Sicht fÃŒr Datenanalyse: Maximale Ausdehnung von ax_flurstueck fuer EXTENT-Angabe im Mapfile.'; 
     
    647790     AND r.stelle = d.stelle  
    648791  WHERE r.endet IS NULL AND d.endet IS NULL ; 
     792 
    649793COMMENT ON VIEW baurecht  
    650794 IS 'Datenanalyse: EnstschlÃŒsselte Felder zu einer FlÀche des Baurechts.'; 
     
    658802  WHERE           endet IS NULL 
    659803  ORDER BY        land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer; 
     804 
    660805COMMENT ON VIEW gemarkung_in_gemeinde  
    661806 IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.'; 
     
    670815 WHERE    endet IS NULL 
    671816 GROUP BY st_geometrytype(wkb_geometry); 
     817 
    672818COMMENT ON VIEW arten_von_flurstuecksgeometrie IS 'Datenanalyse: vorkommende Geometry-Typen in Tabelle ax_flurstueck.'; 
    673819 
     
    697843     AND l.lage = s.lage 
    698844    WHERE l.gemeinde = 40;  -- "40" = Stadt Lage 
     845 
    699846COMMENT ON VIEW adressen_hausnummern IS 'Datenanalyse: VerschlÃŒsselte Lagebezeichnung (Straße und Hausnummer) fÃŒr eine Gemeinde. SchlÃŒssel der Gemeinde nach Bedarf anpassen.'; 
    700847 
     
    704851/*  
    705852-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    706  
    707     +++ HIER HIN KOPPIEREN ++++ 
    708  
    709 */ 
    710 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    711 -- +++ ToDo 
    712853 
    713854CREATE OR REPLACE VIEW adressen_zum_flurstueck 
     
    737878       AND l.gemeinde = 40  -- "40" = Stadt Lage 
    738879     ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner; 
     880 
     881*/ 
     882-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     883-- +++ ToDo 
     884 
     885CREATE OR REPLACE VIEW adressen_zum_flurstueck 
     886AS 
     887    SELECT 
     888           f.gemarkungsnummer,  
     889           f.flurnummer,  
     890           f.zaehler,  
     891           f.nenner, 
     892           g.bezeichnung AS gemeindename,  
     893           s.bezeichnung AS strassenname,  
     894           l.lage        AS strassenschluessel,  
     895           l.hausnummer  
     896      FROM   ax_flurstueck f  
     897      JOIN   alkis_beziehungen v  
     898        ON f.gml_id=v.beziehung_von 
     899      JOIN   ax_lagebezeichnungmithausnummer l   
     900        ON l.gml_id=v.beziehung_zu 
     901      JOIN   ax_gemeinde g  
     902        ON l.kreis=g.kreis  
     903       AND l.gemeinde=g.gemeinde  
     904      JOIN   ax_lagebezeichnungkatalogeintrag s  
     905        ON l.kreis=s.kreis  
     906       AND l.gemeinde=s.gemeinde  
     907       AND l.lage = s.lage 
     908     WHERE v.beziehungsart='weistAuf' 
     909       AND l.gemeinde = 40  -- "40" = Stadt Lage 
     910     ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner; 
     911 
    739912COMMENT ON VIEW adressen_zum_flurstueck IS 'Datenanalyse: Zuordnung von Adressen zu Flurstuecken. SchlÃŒssel der Gemeinde nach Bedarf anpassen.'; 
    740913 
     
    809982/*  
    810983-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    811  
    812     +++ HIER HIB KOPIEREN +++ 
    813  
    814 */ 
    815 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    816 -- +++ ToDo 
    817984 
    818985CREATE OR REPLACE VIEW flurstuecke_eines_eigentuemers  
     
    8571024     AND s.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL 
    8581025   ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer; 
     1026 
     1027 
     1028*/ 
     1029-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     1030-- +++ ToDo 
     1031 
     1032CREATE OR REPLACE VIEW flurstuecke_eines_eigentuemers  
     1033AS  
     1034   SELECT  
     1035      k.bezeichnung                AS gemarkung,  
     1036      k.gemarkungsnummer           AS gemkg_nr,  
     1037      f.flurnummer                 AS flur,  
     1038      f.zaehler                    AS fs_zaehler,  
     1039      f.nenner                     AS fs_nenner,  
     1040      f.amtlicheflaeche            AS flaeche,  
     1041      f.wkb_geometry               AS geom,  -- fuer Export als Shape 
     1042   -- g.bezirk,  
     1043      b.bezeichnung                AS bezirkname, 
     1044      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,  
     1045      g.blattart,  
     1046      s.laufendenummer             AS bvnr,  
     1047      art.bezeichner               AS buchgsart,  
     1048   -- s.zaehler || '/' || s.nenner AS buchg_anteil,  
     1049      n.laufendenummernachdin1421  AS name_num,  
     1050   -- n.zaehler || '/' || n.nenner AS nam_anteil,  
     1051      p.nachnameoderfirma          AS nachname --,  
     1052   -- p.vorname  
     1053   FROM       ax_person              p 
     1054        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id  
     1055        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id  
     1056        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von  
     1057        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id  
     1058        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk  
     1059        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id  
     1060        JOIN  ax_buchungsstelle      s    ON s.gml_id = bgs.beziehung_von  
     1061        JOIN  ax_buchungsstelle_buchungsart art ON s.buchungsart = art.wert  
     1062        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = s.gml_id 
     1063        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von  
     1064        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer  
     1065   WHERE p.nachnameoderfirma LIKE 'Gemeinde %'   -- ** Bei Bedarf anpassen! 
     1066     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person 
     1067     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch 
     1068     AND bgs.beziehungsart = 'istBestandteilVon' -- Buchungs-Stelle >> Grundbuch 
     1069     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> Buchungs-Stelle 
     1070     AND p.endet IS NULL AND n.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL 
     1071     AND s.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL 
     1072   ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer; 
     1073 
    8591074COMMENT ON VIEW flurstuecke_eines_eigentuemers IS 'Muster fÃŒr Export: Suchkriteriumnach Bedarf anpassen.'; 
    8601075 
     
    8761091/*  
    8771092-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    878  
    879  
    880     +++ HIER HIN KOIEREN 
    881  
    882 */ 
    883 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    8841093 
    8851094CREATE OR REPLACE VIEW rechte_eines_eigentuemers  
     
    9321141     AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL 
    9331142   ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, sh.laufendenummer; 
     1143 
     1144 
     1145*/ 
     1146-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     1147 
     1148CREATE OR REPLACE VIEW rechte_eines_eigentuemers  
     1149AS 
     1150   SELECT  
     1151      k.bezeichnung                AS gemarkung,  
     1152      k.gemarkungsnummer           AS gemkg_nr,  
     1153      f.flurnummer                 AS flur,  
     1154      f.zaehler                    AS fs_zaehler,  
     1155      f.nenner                     AS fs_nenner,  
     1156      f.amtlicheflaeche            AS flaeche,  
     1157      f.wkb_geometry               AS geom,  -- fuer Export als Shape 
     1158   -- g.bezirk,  
     1159      b.bezeichnung                AS bezirkname, 
     1160      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,  
     1161   -- g.blattart,  
     1162      sh.laufendenummer            AS bvnr_herr,  
     1163      sh.zaehler || '/' || sh.nenner AS buchg_anteil_herr,  
     1164      arth.bezeichner              AS buchgsa_herr,  
     1165      bss.beziehungsart            AS bez_art, 
     1166      artd.bezeichner              AS buchgsa_dien,  
     1167      sd.laufendenummer            AS bvnr_dien,  
     1168   -- sd.zaehler || '/' || sd.nenner AS buchg_anteil_dien, 
     1169      n.laufendenummernachdin1421  AS name_num,  
     1170   -- n.zaehler || '/' || n.nenner AS nam_anteil,  
     1171      p.nachnameoderfirma          AS nachname --,   
     1172   -- p.vorname  
     1173   FROM       ax_person              p 
     1174        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id  
     1175        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id  
     1176        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von  
     1177        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id  
     1178        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk  
     1179        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id  
     1180        JOIN  ax_buchungsstelle      sh   ON sh.gml_id = bgs.beziehung_von  -- herrschende Buchung 
     1181        JOIN  ax_buchungsstelle_buchungsart arth ON sh.buchungsart = arth.wert  
     1182        JOIN  alkis_beziehungen      bss  ON sh.gml_id = bss.beziehung_von 
     1183        JOIN  ax_buchungsstelle      sd   ON sd.gml_id = bss.beziehung_zu   -- dienende Buchung 
     1184        JOIN  ax_buchungsstelle_buchungsart artd ON sd.buchungsart = artd.wert  
     1185        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = sd.gml_id 
     1186        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von  
     1187        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer  
     1188   WHERE p.nachnameoderfirma LIKE 'Stadt %'   -- ** Bei Bedarf anpassen! 
     1189     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person 
     1190     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch 
     1191     AND bgs.beziehungsart = 'istBestandteilVon' -- B-Stelle herr   >> Grundbuch 
     1192     AND bss.beziehungsart in ('an','zu')        -- B-Stelle herr.  >> B-Stelle dien. 
     1193     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> B-Stelle dien 
     1194     AND p.endet IS NULL AND n.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL 
     1195     AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL 
     1196   ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, sh.laufendenummer; 
     1197 
    9341198COMMENT 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.'; 
    9351199 
     
    9811245-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    9821246 
    983     +++ HIER HIN KOPPIEREN ++++ 
    984  
    985 */ 
    986 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    987 -- +++ ToDo 
    988  
    9891247CREATE OR REPLACE VIEW mehrfache_buchung_zu_fs 
    9901248AS 
     
    9971255  HAVING count(b.ogc_fid) > 1; 
    9981256 
     1257*/ 
     1258-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     1259-- +++ ToDo 
     1260 
     1261CREATE OR REPLACE VIEW mehrfache_buchung_zu_fs 
     1262AS 
     1263  SELECT f.gml_id, count(b.ogc_fid) AS anzahl 
     1264    FROM ax_flurstueck f 
     1265    JOIN alkis_beziehungen b 
     1266      ON f.gml_id = b.beziehung_von  
     1267  WHERE b.beziehungsart = 'istGebucht' 
     1268  GROUP BY f.gml_id 
     1269  HAVING count(b.ogc_fid) > 1; 
     1270 
    9991271-- Noch einfacher? - Auch ohne JOIN wird das selbe Ergebnis geliefert. 
    10001272-- Doppelte Verweise zÀhlen ohne zu prÃŒfen, ob die gml_id in ax_flurstueck existiert. 
     
    10431315/*  
    10441316-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    1045  
    1046     +++ HIER HIN +++ 
    1047  
    1048 */ 
    1049 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    10501317 
    10511318CREATE OR REPLACE VIEW adressen_zu_gebauede_mit_mehreren_hausnummern 
     
    10641331   HAVING count(l.gml_id) > 1); 
    10651332 
     1333*/ 
     1334-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     1335 
     1336CREATE OR REPLACE VIEW adressen_zu_gebauede_mit_mehreren_hausnummern 
     1337AS 
     1338 SELECT l.gml_id, l.gemeinde, l.lage, l.hausnummer -- Anzeige der Adressfelder 
     1339 FROM ax_gebaeude g1 
     1340   JOIN alkis_beziehungen b ON b.beziehung_von = g1.gml_id 
     1341   JOIN ax_lagebezeichnungmithausnummer l ON b.beziehung_zu = l.gml_id 
     1342  WHERE b.beziehungsart = 'zeigtAuf' AND g1.gml_id IN -- Subquery sucht GebÀude mit meherern Hausnummen 
     1343   (SELECT g2.gml_id  
     1344    FROM ax_gebaeude g2 
     1345    JOIN alkis_beziehungen b ON b.beziehung_von = g2.gml_id 
     1346    JOIN ax_lagebezeichnungmithausnummer l ON b.beziehung_zu = l.gml_id 
     1347   WHERE b.beziehungsart = 'zeigtAuf' 
     1348   GROUP BY g2.gml_id  
     1349   HAVING count(l.gml_id) > 1); 
     1350 
    10661351COMMENT ON VIEW adressen_zu_gebauede_mit_mehreren_hausnummern 
    10671352 IS 'GebÀude mit mehreren Hausnummern suchen (ist erlaubt) und dazu die Adressen anzeigen.'; 
     
    11351420/*  
    11361421-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    1137  
    1138     +++ HIER HIN KOPIEREN  +++ 
    1139  
    1140 */ 
    1141 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    11421422 
    11431423CREATE OR REPLACE VIEW strasse_als_gewanne 
     
    11621442  ; 
    11631443 
     1444*/ 
     1445-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     1446 
     1447CREATE OR REPLACE VIEW strasse_als_gewanne 
     1448AS 
     1449  SELECT k.gemeinde, k.lage AS strassenschluessel, 
     1450      -- k.bezeichnung      AS strassenname, 
     1451         o.unverschluesselt AS gewanne, 
     1452         count(fo.gml_id) AS anzahl_fs_gewanne 
     1453  FROM ax_lagebezeichnungkatalogeintrag k   -- Straßentabelle 
     1454  JOIN ax_lagebezeichnungohnehausnummer o   -- Gewanne 
     1455    ON k.bezeichnung = o.unverschluesselt   -- Gleiche Namen 
     1456  -- Join Gewanne auf FlurstÃŒcke um nur solche FÀlle anzuzeigen, die verwendet werden  
     1457  -- UND die auch in der gleichen Gemeinde liegen. 
     1458  -- Sonst könnte zufÀllige Namensgleichheiten aus verschiedenen Gemeinden geben.  
     1459  JOIN alkis_beziehungen vo 
     1460    ON o.gml_id=vo.beziehung_zu AND vo.beziehungsart= 'zeigtAuf'  
     1461  JOIN ax_flurstueck fo 
     1462    ON fo.gml_id=vo.beziehung_von 
     1463 WHERE fo.gemeinde = k.gemeinde  -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraßenschlÃŒssel 
     1464  GROUP BY k.gemeinde, k.lage, o.unverschluesselt --, k.bezeichnung 
     1465  ORDER BY k.gemeinde, k.lage, o.unverschluesselt --, k.bezeichnung 
     1466  ; 
     1467 
    11641468COMMENT ON VIEW strasse_als_gewanne 
    11651469 IS 'Gewannenbezeichnungen, die auch als Straßenname verwendet werden. Mit FlurstÃŒcks-ZÀhler.'; 
     
    11711475/*  
    11721476-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    1173  
    1174     +++ HIER HIN KOPIEREN  +++ 
    1175  
    1176 */ 
    1177 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    11781477 
    11791478CREATE OR REPLACE VIEW strasse_als_gewanne_flst 
     
    11951494  ORDER BY fo.gemarkungsnummer, fo.flurnummer, fo.zaehler, k.gemeinde, k.bezeichnung; 
    11961495 
     1496*/ 
     1497-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     1498 
     1499CREATE OR REPLACE VIEW strasse_als_gewanne_flst 
     1500AS 
     1501  SELECT -- fo.gml_id,  
     1502         fo.gemarkungsnummer || '-' || fo.flurnummer || '-' || fo.zaehler::text || COALESCE ('/' || fo.nenner::text, '') AS flstkennz, 
     1503         k.gemeinde,  
     1504         o.unverschluesselt AS gewanne, 
     1505      -- k.bezeichnung AS strassenname, 
     1506         k.lage        -- AS strassen_schluessel 
     1507  FROM ax_lagebezeichnungkatalogeintrag k   -- Straßentabelle 
     1508  JOIN ax_lagebezeichnungohnehausnummer o   -- Gewanne 
     1509    ON k.bezeichnung = o.unverschluesselt   -- Gleiche Namen  
     1510  JOIN alkis_beziehungen vo 
     1511    ON o.gml_id=vo.beziehung_zu AND vo.beziehungsart= 'zeigtAuf'  
     1512  JOIN ax_flurstueck fo 
     1513    ON fo.gml_id=vo.beziehung_von 
     1514 WHERE fo.gemeinde = k.gemeinde  -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraßenschlÃŒssel 
     1515  ORDER BY fo.gemarkungsnummer, fo.flurnummer, fo.zaehler, k.gemeinde, k.bezeichnung; 
     1516 
    11971517COMMENT ON VIEW strasse_als_gewanne_flst 
    11981518 IS 'FlurstÃŒcke mit Gewannenbezeichnungen, die auch als Straßenname verwendet werden.'; 
     
    12061526/*  
    12071527-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    1208  
    1209     +++ HIER HIN KOPIEREN  +++ 
    1210  
    1211 */ 
    1212 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    12131528 
    12141529CREATE OR REPLACE VIEW nachmigration_aehnliche_anschriften 
     
    12301545    ORDER BY p.nachnameoderfirma, p.vorname; 
    12311546 
     1547*/ 
     1548-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     1549 
     1550CREATE OR REPLACE VIEW nachmigration_aehnliche_anschriften 
     1551AS 
     1552  SELECT DISTINCT p.gml_id, p.nachnameoderfirma, p.vorname,  
     1553        a1.ort_post, a1.strasse AS strasse1, a2.strasse AS strasse2, a1.hausnummer 
     1554     -- , b1.import_id AS import1, b2.import_id AS import2 
     1555    FROM ax_person         p 
     1556    JOIN alkis_beziehungen b1 ON b1.beziehung_von=p.gml_id 
     1557    JOIN ax_anschrift      a1 ON a1.gml_id=b1.beziehung_zu 
     1558    JOIN alkis_beziehungen b2 ON b2.beziehung_von=p.gml_id 
     1559    JOIN ax_anschrift      a2 ON a2.gml_id=b2.beziehung_zu 
     1560    WHERE b1.beziehungsart='hat'  
     1561      AND b2.beziehungsart='hat' 
     1562      AND a1.gml_id    <>  a2.gml_id 
     1563      AND a1.ort_post   =  a2.ort_post 
     1564      AND a1.strasse    like trim(a2.strasse, '.') || '%' 
     1565      AND a1.hausnummer =  a2.hausnummer 
     1566    ORDER BY p.nachnameoderfirma, p.vorname; 
     1567 
    12321568COMMENT ON VIEW nachmigration_aehnliche_anschriften 
    12331569 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.'; 
  • Version-0.8/import/sichten_wms.sql

    r324 r326  
    33-- ===== 
    44 
    5 --  PostNAS 
     5--  PostNAS 0.8 
    66 
    77--  ----------------------------------------- 
     
    2424--  2014-02-24 Kein Filter auf advstandardmodell bei FlurstÃŒcks-Zuordnungspfeil 
    2525--  2014-08-26 View "ap_lto_stra" analog "ap_pto_stra" fÃŒr Straßennamen auf Linien-Geometrie 
    26  
    27 --  2014-08-27 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen. 
     26--  2014-08-28 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen. 
    2827--             Relationen nun direkt ÃŒber neue Spalten in den Objekttabellen.  
    2928 
     
    3837-- Wenn der nicht gefÃŒllt ist, wird statt dessen die Nummer aus der verknÃŒpften Labebezeichnung verwendet. 
    3938 
    40  
    41 /*  
    42 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    43  
    44 CREATE OR REPLACE VIEW s_hausnummer_gebaeude  
    45 AS  
    46  SELECT p.ogc_fid,  
    47         p.wkb_geometry,                            -- Point 
    48         p.drehwinkel * 57.296 AS drehwinkel,  -- umn: ANGLE 
    49     --  p.art, 
    50     --  p.advstandardmodell       AS modell,  -- TEST 
    51     --  p.horizontaleausrichtung  AS hor,     -- = 'zentrisch' 
    52     --  p.vertikaleausrichtung    AS ver,     -- = 'Basis' (oft), "Mitte" (selten) 
    53     --  p.schriftinhalt,                      -- WMS: das bessere LABELITEM, kann aber leer sein 
    54     --  l.hausnummer,                         -- WMS: LABELITEM default/native 
    55         COALESCE(p.schriftinhalt, l.hausnummer) AS hausnummer 
    56    FROM ap_pto p 
    57    JOIN alkis_beziehungen v 
    58      ON p.gml_id = v.beziehung_von 
    59    JOIN ax_lagebezeichnungmithausnummer l 
    60          ON v.beziehung_zu  = l.gml_id 
    61   WHERE p.art = 'HNR' 
    62     AND 'DKKM1000' = ANY (p.advstandardmodell) -- erste NÀherungslösung um Redundanzen zu unterdrÃŒcken 
    63     AND v.beziehungsart = 'dientZurDarstellungVon' 
    64         AND p.endet IS NULL 
    65         AND l.endet IS NULL; 
    66  
    67 */ 
    68  
    69 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     39-- DROP VIEW IF EXISTS s_hausnummer_gebaeude; 
     40 
    7041CREATE OR REPLACE VIEW s_hausnummer_gebaeude  
    7142AS  
     
    9667-- ax_gebaeude  >hat>  ax_lagebezeichnungmitpseudonummer, kein Drehwinkel. 
    9768 
    98 /*  
    99 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    100  
    101 CREATE OR REPLACE VIEW lfdnr_nebengebaeude  
    102 AS  
    103  SELECT g.ogc_fid,  
    104         g.wkb_geometry,  
    105     --  l.pseudonummer,      -- TEST die HsNr des zugehoerigen Hauptgebaeudes 
    106         l.laufendenummer     -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes 
    107    FROM ax_gebaeude g 
    108    JOIN alkis_beziehungen v  
    109      ON g.gml_id = v.beziehung_von 
    110    JOIN ax_lagebezeichnungmitpseudonummer l 
    111      ON v.beziehung_zu  = l.gml_id 
    112    WHERE v.beziehungsart = 'hat' 
    113      AND g.endet IS NULL 
    114      AND l.endet IS NULL; 
    115  
    116 */ 
    117 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     69-- DROP VIEW IF EXISTS lfdnr_nebengebaeude; 
     70 
    11871CREATE OR REPLACE VIEW lfdnr_nebengebaeude  
    11972AS  
     
    13184-- GebÀude-Text 
    13285-- ------------ 
     86 
     87-- DROP VIEW IF EXISTS gebaeude_txt; 
     88 
    13389CREATE OR REPLACE VIEW gebaeude_txt  
    13490AS  
     
    149105-- ----------------------- 
    150106 
    151 /*  
    152 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    153 CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck  
    154 AS  
    155  SELECT p.ogc_fid,  
    156         p.wkb_geometry,  
    157         p.drehwinkel * 57.296 AS drehwinkel, 
    158         f.flurstueckskennzeichen 
    159    FROM ap_ppo p 
    160    JOIN alkis_beziehungen v 
    161      ON p.gml_id = v.beziehung_von 
    162    JOIN ax_flurstueck f 
    163      ON v.beziehung_zu = f.gml_id 
    164   WHERE p.art = 'Haken' 
    165     AND v.beziehungsart = 'dientZurDarstellungVon' 
    166     AND f.endet IS NULL 
    167     AND p.endet IS NULL; 
    168  
    169 */ 
    170  
    171 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     107-- DROP VIEW IF EXISTS s_zugehoerigkeitshaken_flurstueck; 
     108 
    172109CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck  
    173110AS  
     
    188125-- ----------------------------------- 
    189126 
    190 /*  
    191 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    192  
    193 CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck  
    194 AS  
    195  SELECT l.ogc_fid,  
    196         l.wkb_geometry 
    197    FROM ap_lpo l 
    198    JOIN alkis_beziehungen v 
    199      ON l.gml_id = v.beziehung_von 
    200    JOIN ax_flurstueck f 
    201      ON v.beziehung_zu = f.gml_id 
    202   WHERE l.art = 'Pfeil' 
    203     AND v.beziehungsart = 'dientZurDarstellungVon' 
    204     AND f.endet IS NULL 
    205     AND l.endet IS NULL; 
    206  
    207 */ 
    208 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     127-- DROP VIEW IF EXISTS s_zuordungspfeil_flurstueck; 
     128 
    209129CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck  
    210130AS  
     
    221141  IS 'Sicht fÃŒr Kartendarstellung: Zuordnungspfeil zur FlurstÃŒcksnummer, Liniengeometrie.'; 
    222142 
    223 /*  
    224 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    225 CREATE OR REPLACE VIEW s_zuordungspfeilspitze_flurstueck  
    226 AS  
    227  SELECT l.ogc_fid,  
    228         (((st_azimuth(st_pointn(l.wkb_geometry, 1),  
    229         st_pointn(l.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel,  
    230         st_startpoint(l.wkb_geometry) AS wkb_geometry  
    231    FROM ap_lpo l 
    232    JOIN alkis_beziehungen v 
    233      ON l.gml_id = v.beziehung_von 
    234    JOIN ax_flurstueck f 
    235      ON v.beziehung_zu = f.gml_id 
    236   WHERE l.art = 'Pfeil' 
    237     AND v.beziehungsart = 'dientZurDarstellungVon' 
    238     AND f.endet IS NULL 
    239     AND l.endet IS NULL; 
    240  
    241 */ 
    242 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     143 
     144-- DROP VIEW IF EXISTS s_zuordungspfeilspitze_flurstueck; 
     145 
    243146CREATE OR REPLACE VIEW s_zuordungspfeilspitze_flurstueck  
    244147AS  
     
    263166-- ---------------------------------------------------- 
    264167 
    265 /*  
    266 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    267 CREATE OR REPLACE VIEW s_zuordungspfeil_bodensch 
    268 AS  
    269  SELECT l.ogc_fid,  
    270         l.wkb_geometry 
    271    FROM ap_lpo l 
    272    JOIN alkis_beziehungen v 
    273      ON l.gml_id = v.beziehung_von 
    274    JOIN ax_bodenschaetzung b 
    275      ON v.beziehung_zu = b.gml_id 
    276   WHERE l.art = 'Pfeil' 
    277     AND v.beziehungsart = 'dientZurDarstellungVon' 
    278     AND ('DKKM1000' ~~ ANY (l.advstandardmodell)) 
    279     AND b.endet IS NULL 
    280     AND l.endet IS NULL; 
    281  
    282 */ 
    283  
    284 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    285168CREATE OR REPLACE VIEW s_zuordungspfeil_bodensch 
    286169AS  
     
    299182 
    300183 
    301 /*  
    302 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    303  
    304 CREATE OR REPLACE VIEW s_zuordungspfeilspitze_bodensch  
    305 AS  
    306  SELECT l.ogc_fid,  
    307         (((st_azimuth(st_pointn(l.wkb_geometry, 1),  
    308         st_pointn(l.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel,  
    309         st_startpoint(l.wkb_geometry) AS wkb_geometry  
    310    FROM ap_lpo l 
    311    JOIN alkis_beziehungen v 
    312      ON l.gml_id = v.beziehung_von 
    313    JOIN ax_bodenschaetzung b 
    314      ON v.beziehung_zu = b.gml_id 
    315   WHERE l.art = 'Pfeil' 
    316     AND v.beziehungsart = 'dientZurDarstellungVon' 
    317     AND ('DKKM1000' ~~ ANY (l.advstandardmodell)) 
    318     AND b.endet IS NULL 
    319     AND l.endet IS NULL; 
    320  
    321 */ 
    322  
    323 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     184-- DROP VIEW IF EXISTS s_zuordungspfeilspitze_bodensch; 
     185  
    324186CREATE OR REPLACE VIEW s_zuordungspfeilspitze_bodensch  
    325187AS  
     
    348210-- Auch Zeilen mit leerem Schriftinhalt verwenden. Das wird im PostProcessing noch ergÀnzt.  
    349211 
    350 -- DROP VIEW ap_pto_stra; 
    351  
    352 /*  
    353 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    354  
    355 CREATE OR REPLACE VIEW ap_pto_stra  
    356 AS  
    357   SELECT p.ogc_fid, 
    358          l.gml_id,                               -- wird im PP zum Nachladen aus Katalog gebraucht 
    359       -- p.advstandardmodell       AS modell,    -- TEST 
    360       -- l.unverschluesselt, l.lage AS schluessel, -- zur Lage  TEST 
    361          p.schriftinhalt,                        -- WMS: LABELITEM 
    362          p.art,                                  -- WMS: CLASSITEM 
    363          p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position .. 
    364          p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver 
    365          p.drehwinkel * 57.296     AS winkel,    -- * 180 / Pi 
    366          p.wkb_geometry 
    367     FROM ap_pto p 
    368     JOIN alkis_beziehungen v   -- Relation zur Lagebezeichnung o. HsNr. 
    369       ON p.gml_id = v.beziehung_von 
    370     JOIN ax_lagebezeichnungohnehausnummer l 
    371       ON v.beziehung_zu = l.gml_id 
    372    WHERE -- NOT p.schriftinhalt IS NULL   AND 
    373           p.endet IS NULL                            -- nichts historisches 
    374      AND  p.art   IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- Diese Werte als CLASSES in LAYER behandeln.  
    375      AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
    376  
    377      AND (   'DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 
    378           OR 'DLKM'     = ANY (p.advstandardmodell) -- oder auch Kataster allgemein  
    379            -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 
    380           OR (p.advstandardmodell IS NULL 
    381                AND (SELECT s.ogc_fid                -- irgend ein Feld 
    382                       FROM ap_pto s                 -- eines anderen Textes (suchen) 
    383                       JOIN alkis_beziehungen vs     -- zur gleichen Lage o.HsNr 
    384                         ON s.gml_id = vs.beziehung_von 
    385                       JOIN ax_lagebezeichnungohnehausnummer ls 
    386                         ON vs.beziehung_zu = ls.gml_id 
    387                      WHERE ls.gml_id = l.gml_id 
    388                        AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
    389                        AND NOT s.advstandardmodell IS NULL  
    390                      LIMIT 1  -- einer reicht als Beweis 
    391                    ) IS NULL  
    392               ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 
    393          ) 
    394 ; 
    395  
    396 */ 
    397  
    398 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     212-- DROP VIEW IF EXISTS ap_pto_stra; 
     213 
    399214CREATE OR REPLACE VIEW ap_pto_stra  
    400215AS  
     
    434249 Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe. Dient im Script pp_laden.sql zum ersten FÃŒllen der Tabelle "pp_strassenname_p".'; 
    435250 
    436 -- 2013-10-26: Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in den Tabellen "pp_strassenname" und "pp_strassenklas". 
     251-- Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in den Tabellen "pp_strassenname" und "pp_strassenklas". 
    437252-- Der View ÃŒbernimmt die Auswahl des passenden advstandardmodell und rechnet den Winkel passend um, 
    438253-- In der Tabelle werden dann die leer gebliebenen Label aus dem Katalog noch ergÀnzt. 
    439254 
    440 -- DROP VIEW ap_lto_stra; 
    441  
    442 /*  
    443 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    444  
    445 CREATE OR REPLACE VIEW ap_lto_stra  
    446 AS  
    447   SELECT p.ogc_fid, 
    448          l.gml_id,                               -- wird im PP zum Nachladen aus Katalog gebraucht 
    449          p.schriftinhalt,                        -- WMS: LABELITEM 
    450          p.art,                                  -- WMS: CLASSITEM 
    451          p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position .. 
    452          p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver 
    453          p.wkb_geometry 
    454     FROM ap_lto p 
    455     JOIN alkis_beziehungen v   -- Relation zur Lagebezeichnung o. HsNr. 
    456       ON p.gml_id = v.beziehung_von 
    457     JOIN ax_lagebezeichnungohnehausnummer l 
    458       ON v.beziehung_zu = l.gml_id 
    459    WHERE  p.endet IS NULL                            -- nichts historisches 
    460      AND  p.art   IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- Diese Werte als CLASSES in LAYER behandeln.  
    461      AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
    462      AND (    'DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 
    463            OR 'DLKM'     = ANY (p.advstandardmodell) -- oder auch Kataster allgemein? 
    464            -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 
    465            OR (p.advstandardmodell IS NULL 
    466                AND (SELECT s.ogc_fid                 -- irgend ein Feld 
    467                       FROM ap_lto s                  -- eines anderen Textes (suchen) 
    468                       JOIN alkis_beziehungen vs      -- zur gleichen Lage o.HsNr 
    469                         ON s.gml_id = vs.beziehung_von 
    470                       JOIN ax_lagebezeichnungohnehausnummer ls 
    471                         ON vs.beziehung_zu = ls.gml_id 
    472                      WHERE ls.gml_id = l.gml_id 
    473                        AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
    474                        AND NOT s.advstandardmodell IS NULL  
    475                      LIMIT 1  -- einer reicht als Beweis 
    476                    ) IS NULL  
    477               ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 
    478          ) 
    479 ; 
    480  
    481 */ 
    482 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     255-- DROP VIEW IF EXISTS ap_lto_stra; 
     256 
    483257CREATE OR REPLACE VIEW ap_lto_stra  
    484258AS  
     
    532306-- ODER           trennen nach fachlichen Ebenen wie "Nutzung" und "GebÀude" und .... 
    533307 
    534 /*  
    535 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    536  
    537 CREATE OR REPLACE VIEW ap_pto_nam  
    538 AS  
    539   SELECT p.ogc_fid, 
    540           -- p.advstandardmodell       AS modell,    -- TEST 
    541          p.schriftinhalt,                        -- WMS: LABELITEM 
    542          p.art,                                  -- WMS: CLASSITEM 
    543          p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position .. 
    544          p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver 
    545          p.drehwinkel * 57.296     AS winkel,    -- * 180 / Pi 
    546          p.wkb_geometry 
    547     FROM ap_pto p 
    548     JOIN alkis_beziehungen v        
    549       ON p.gml_id = v.beziehung_von 
    550   --JOIN nutzung l                      -- Im PostProcessing zusammen gefasste Nutzungsarten-Abschnitte 
    551   --  ON v.beziehung_zu = l.gml_id 
    552    WHERE NOT p.schriftinhalt IS NULL  
    553      AND  p.endet IS NULL                            -- nichts historisches 
    554      AND  p.art   IN ('NAM','ZNM') -- Diese Werte als CLASSES in LAYER behandeln.  
    555      AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
    556      AND ('DKKM1000' = ANY (p.advstandardmodell)     -- "Lika 1000" bevorzugen 
    557            -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 
    558            OR (p.advstandardmodell IS NULL 
    559                AND (SELECT vs.beziehung_zu          -- irgend ein Feld 
    560                                           FROM ap_pto s                 -- eines anderen Textes (suchen) 
    561                       JOIN alkis_beziehungen vs     -- zur gleichen ?irgendwas? 
    562                         ON s.gml_id = vs.beziehung_von 
    563                      WHERE vs.beziehung_zu = v.beziehung_zu 
    564                        AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
    565                        AND NOT s.advstandardmodell IS NULL  
    566                      LIMIT 1  -- einer reicht als Beweis 
    567                                         ) IS NULL  
    568               ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 
    569          ) 
    570 ; 
    571  
    572 */ 
    573  
    574 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     308-- DROP VIEW IF EXISTS ap_pto_nam; 
     309 
    575310CREATE OR REPLACE VIEW ap_pto_nam  
    576311AS  
     
    613348-- Doppelte Darstellung aufgrund verschiedener "advstandardmodell" zum Objekt unterdrÃŒcken analog ap_pto_stra und ap_pto_nam 
    614349 
    615 /*  
    616 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    617  
    618     +++ HIER HIN KOPIEREN  +++ 
    619  
    620 */ 
    621  
    622 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    623 -- ToDo 
    624 CREATE OR REPLACE VIEW ap_pto_rest  
     350-- DROP VIEW IF EXISTS ap_pto_rest; 
     351 
     352CREATE OR REPLACE VIEW ap_pto_rest 
    625353AS  
    626354  SELECT p.ogc_fid,  
     
    630358         p.wkb_geometry  
    631359    FROM ap_pto p 
    632     JOIN alkis_beziehungen v   -- Relation zur ?irgendwas? 
    633       ON p.gml_id = v.beziehung_von 
    634    WHERE not p.schriftinhalt IS NULL  
     360   WHERE NOT p.schriftinhalt IS NULL 
     361     AND NOT p.dientzurdarstellungvon IS NULL 
    635362     AND p.endet IS NULL 
    636363     AND p.art   NOT IN ('PNR','HNR','Strasse','Weg','Platz','BezKlassifizierungStrasse','AOG_AUG') -- 'PNR', 
    637364     -- Diese 'IN'-Liste fortschreiben bei Erweiterungen des Mapfiles 
    638365     -- 'PNR' = Pseudonummer (lfd.-Nr.-NebengebÀude), Inhalte wie "(1)" oder "P50" - kommt nicht mehr vor, oder? 
    639     AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
    640366    AND ('DKKM1000' = ANY (p.advstandardmodell)     -- "Lika 1000" bevorzugen 
    641            -- Ersatzweise auch "keine Angabe" (nul) akzeptieren, aber nur wenn es keinen besseren Text zu ?irgendwas? gibt 
    642            -- Es wird hier nur bis zur Verbindungstabelle "alkis_beziehungen" gesucht, ob am anderen Ende die gleiche gml_id verlinkt ist. 
    643            -- Diese gml_id können dann zu verschiedenen, unbekannten Objekttabellen linken. 
     367           -- Ersatzweise auch "keine Angabe" (null) akzeptieren, aber nur wenn ... 
    644368           OR (p.advstandardmodell IS NULL 
    645                AND (SELECT vs.beziehung_zu          -- irgend ein Feld 
    646                                           FROM ap_pto s                 -- eines anderen Textes (suchen) 
    647                       JOIN alkis_beziehungen vs     -- zur gleichen ?irgendwas? 
    648                         ON s.gml_id = vs.beziehung_von 
    649                      WHERE vs.beziehung_zu = v.beziehung_zu 
    650                        AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
    651                        AND NOT s.advstandardmodell IS NULL  
     369               AND ( SELECT s.ogc_fid               -- irgend ein Feld 
     370                      FROM ap_pto s 
     371                     WHERE p.dientzurdarstellungvon = s.dientzurdarstellungvon -- gleiches PrÀsentationsobj. 
     372                       AND NOT s.advstandardmodell IS NULL -- Irgend eine Angabe 
    652373                     LIMIT 1  -- einer reicht als Ausschlußkriterium 
    653                                         ) IS NULL  
     374                    ) IS NULL  
    654375              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 
    655376         ); 
     377 
    656378COMMENT ON VIEW ap_pto_rest  
    657379  IS 'Sicht fÃŒr Kartendarstellung: Beschriftungen aus "ap_pto", die noch nicht in anderen Layern angezeigt werden.'; 
     
    664386-- Layer "s_zuordungspfeil_gebaeude" 
    665387-- ----------------------------------- 
    666  
    667 /*  
    668 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    669  
    670     +++ HIER HIN KOPIEREN  +++ 
    671  
    672 */ 
    673 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    674 -- ToDo 
    675  
    676 CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude  
     388-- DROP VIEW IF EXISTS s_zuordungspfeil_gebaeude; 
     389 
     390CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude 
    677391AS  
    678392 SELECT l.ogc_fid,  
    679      -- alkis_beziehungen.beziehungsart, -- TEST 
    680393     -- ap_lpo.art, -- TEST 
    681394        l.wkb_geometry 
    682395   FROM ap_lpo l 
    683    JOIN alkis_beziehungen v 
    684      ON l.gml_id = v.beziehung_von 
    685396   JOIN ax_gebaeude g 
    686      ON v.beziehung_zu = g.gml_id 
     397     ON g.gml_id = ANY(l.dientzurdarstellungvon) 
    687398  WHERE l.art = 'Pfeil' 
    688     AND v.beziehungsart = 'dientZurDarstellungVon' 
    689399    AND g.endet IS NULL 
    690400    AND l.endet IS NULL; 
     401 
    691402COMMENT ON VIEW s_zuordungspfeil_gebaeude  
    692403  IS 'Sicht fÃŒr Kartendarstellung: Zuordnungspfeil fÃŒr GebÀude-Nummer (NebengebÀude). Wird wahrscheinlich nicht mehr benötigt.'; 
     
    695406-- Grenzpunkte 
    696407-- ----------- 
    697 --  ax_punktortta  >zeigtAuf?> AX_Grenzpunkt 
    698408-- Zum Punktort des Grenzpunktes auch eine Information zur Vermarkung holen 
    699  
    700 /*  
    701 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    702  
    703     +++ HIER HIN KOPIEREN  +++ 
    704  
    705 */ 
    706 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
    707 -- ToDo 
     409-- DROP VIEW IF EXISTS grenzpunkt; 
    708410 
    709411CREATE OR REPLACE VIEW grenzpunkt  
     
    712414        o.wkb_geometry,  
    713415     -- g.punktkennung,    -- ggf spÀter als labelitem "rrrrrhhhhAnnnnn" "32483 5751 0 02002" 
    714         g.abmarkung_marke, -- steuert die Darstellung >9000 = unvermarkt 
    715         v.beziehungsart 
     416        g.abmarkung_marke  -- steuert die Darstellung >9000 = unvermarkt 
    716417   FROM ax_punktortta o 
    717    JOIN alkis_beziehungen v  
    718      ON o.gml_id = v.beziehung_von 
    719418   JOIN ax_grenzpunkt g 
    720      ON v.beziehung_zu  = g.gml_id 
    721    WHERE v.beziehungsart = 'istTeilVon' 
    722      AND g.endet IS NULL 
     419     ON o.istteilvon = g.gml_id 
     420   WHERE g.endet IS NULL 
    723421     AND g.endet IS NULL; 
     422 
    724423COMMENT ON VIEW grenzpunkt  
    725424  IS 'Sicht fÃŒr Kartendarstellung: ZusammenfÃŒhrung von Punktort (Geometrie) und AX_Grenzpunkt (Eigenschaften)'; 
     
    735434  WHERE 3000   = ANY (fg.artderflurstuecksgrenze) 
    736435    AND 'DLKM' = ANY (fg.advstandardmodell); 
     436 
    737437COMMENT ON VIEW sk2012_flurgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Flurgrenze"'; 
    738438 
     
    743443  WHERE 7003   = ANY (gemag.artderflurstuecksgrenze) 
    744444    AND 'DLKM' = ANY (gemag.advstandardmodell); 
     445 
    745446COMMENT ON VIEW sk2014_gemarkungsgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemarkungsgrenze"'; 
    746447 
     
    751452  WHERE 7102   = ANY (blg.artderflurstuecksgrenze) 
    752453    AND 'DLKM' = ANY (blg.advstandardmodell); 
     454 
    753455COMMENT ON VIEW sk2018_bundeslandgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Bundeslandgrenze"'; 
    754456 
     
    759461  WHERE 7103   = ANY (rbg.artderflurstuecksgrenze)  
    760462    AND 'DLKM' = ANY (rbg.advstandardmodell); 
     463 
    761464COMMENT ON VIEW sk2020_regierungsbezirksgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Regierungsbezirksgrenze"'; 
    762465 
     
    767470  WHERE 7106   = ANY (gemg.artderflurstuecksgrenze)  
    768471    AND 'DLKM' = ANY (gemg.advstandardmodell); 
     472 
    769473COMMENT ON VIEW sk2022_gemeindegrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemeindegrenze"'; 
    770474 
     
    817521     -- so2.bezeichner                     AS sonst2, -- immer leer? 
    818522        bs.jahreszahl                                 -- integer 
    819    FROM ax_bodenschaetzung bs 
     523   FROM      ax_bodenschaetzung bs 
    820524   LEFT JOIN ax_bodenschaetzung_kulturart      ka ON bs.kulturart = ka.wert 
    821525   LEFT JOIN ax_bodenschaetzung_bodenart       ba ON bs.bodenart  = ba.wert 
     
    828532 --LEFT JOIN ax_bodenschaetzung_sonstigeangaben so2 ON bs.sonstigeangaben[2] = so2.wert -- [2] fast nie 
    829533   WHERE bs.endet IS NULL; 
     534 
    830535COMMENT ON VIEW s_bodensch_ent IS 'Sicht fÃŒr Feature-Info: BodenschÀtzung, mit Langtexten entschlÃŒsselt'; 
    831536 
     
    838543 SELECT bs.ogc_fid, 
    839544        bs.wkb_geometry, 
    840      -- bs.advstandardmodell,   -- NUR TEST 
     545     -- bs.advstandardmodell,     -- NUR TEST 
    841546     -- bs.entstehungsartoderklimastufewasserverhaeltnisse AS entstehart, -- Array der Keys, NUR TEST 
    842547        ka.kurz AS kult,  -- Kulturart, CLASSITEM, steuert die Farbe 
    843548     -- Viele Felder zusammen packen zu einem kompakten Zwei-Zeilen-Label: 
    844           ba.kurz  ||            -- Bodenart 
    845           zs.kurz  ||            -- Zustandsstufe 
    846           ea1.kurz ||            -- Entstehungsart oder Klimastufe, Wasserverhaeltnisse ist ein Array mit 1 bis 2 Elementen 
     549          ba.kurz  ||             -- Bodenart 
     550          zs.kurz  ||             -- Zustandsstufe 
     551          ea1.kurz ||             -- Entstehungsart oder Klimastufe, Wasserverhaeltnisse ist ein Array mit 1 bis 2 Elementen 
    847552          coalesce (ea2.kurz, '') -- NULL vermeiden! 
    848           || ' ' ||              -- Zeilenwechsel im Label (UMN: WRAP) 
     553          || ' ' ||               -- Zeilenwechsel im Label (UMN: WRAP) 
    849554          bs.bodenzahlodergruenlandgrundzahl || '/' || 
    850555          bs.ackerzahlodergruenlandzahl  
    851         AS derlabel              -- LABELITEM Umbruch am Blank 
    852    FROM ax_bodenschaetzung bs 
     556        AS derlabel               -- LABELITEM Umbruch am Blank 
     557   FROM      ax_bodenschaetzung bs 
    853558   LEFT JOIN ax_bodenschaetzung_kulturart      ka ON bs.kulturart = ka.wert 
    854559   LEFT JOIN ax_bodenschaetzung_bodenart       ba ON bs.bodenart  = ba.wert 
     
    859564          ON bs.entstehungsartoderklimastufewasserverhaeltnisse[2] = ea2.wert   -- [2] manchmal gefÃŒllt 
    860565   WHERE bs.endet IS NULL; 
     566 
    861567COMMENT ON VIEW s_bodensch_wms IS 'Sicht fÃŒr Kartendarstellung: BodenschÀtzung mit kompakten Informationen fÃŒr Label.'; 
    862568 
     
    873579   FROM ax_bodenschaetzung 
    874580  WHERE endet IS NULL; 
     581 
    875582COMMENT ON VIEW s_bodensch_po IS 'Sicht fÃŒr Kartendarstellung: KlassenflÀche der BodenschÀtzung ohne Label.'; 
    876583 
     
    896603          bs.ackerzahlodergruenlandzahl  
    897604        AS derlabel                -- LABELITEM, Umbruch am Leerzeichen 
    898    FROM ap_pto                            p 
    899    JOIN alkis_beziehungen                 v  ON p.gml_id       = v.beziehung_von 
    900    JOIN ax_bodenschaetzung                bs ON v.beziehung_zu = bs.gml_id 
     605   FROM ap_pto                                 p 
     606   JOIN ax_bodenschaetzung                     bs ON bs.gml_id = ANY(p.dientzurdarstellungvon) 
    901607   LEFT JOIN ax_bodenschaetzung_kulturart      ka ON bs.kulturart = ka.wert 
    902608   LEFT JOIN ax_bodenschaetzung_bodenart       ba ON bs.bodenart  = ba.wert 
     
    906612   LEFT JOIN ax_bodenschaetzung_entstehungsartoderklimastufe ea2  
    907613          ON bs.entstehungsartoderklimastufewasserverhaeltnisse[2] = ea2.wert  
    908   WHERE -- v.beziehungsart = 'dientZurDarstellungVon' AND  
    909          p.endet  IS NULL 
     614  WHERE  p.endet  IS NULL 
    910615     AND bs.endet IS NULL; 
    911 COMMENT ON VIEW s_bodensch_tx IS 'Sicht fÃŒr Kartendarstellung: Kompakter Label zur KlassenflÀche der BodenschÀtzung an manueller Position. Der Label wird zusammengesetzt aus: Bodenart, Zustandsstufe, Entstehungsart oder Klimastufe/WasserverhÀltnisse, Bodenzahl oder GrÃŒnlandgrundzahl und Ackerzahl oder GrÃŒnlandzahl.'; 
     616 
     617COMMENT ON VIEW s_bodensch_tx IS 'Sicht fÃŒr Kartendarstellung: Kompakter Label zur KlassenflÀche der BodenschÀtzung an manueller Position.  
     618Der Label wird zusammengesetzt aus: Bodenart, Zustandsstufe, Entstehungsart oder Klimastufe/WasserverhÀltnisse, Bodenzahl oder GrÃŒnlandgrundzahl und Ackerzahl oder GrÃŒnlandzahl.'; 
    912619 
    913620-- Redundanz suchen: 
Note: See TracChangeset for help on using the changeset viewer.