source: trunk/import/sichten.sql @ 294

Revision 278, 20.2 KB checked in by frank.jaeger, 11 years ago (diff)

Mapbender-Navigation mit ALKIS-Daten komplett überarbeitet.

Line 
1-- =====
2-- ALKIS
3-- =====
4
5--  -----------------------------------------
6--  Sichten fÃŒr Fehlersuche und Daten-Analyse
7--  -----------------------------------------
8
9--  Dieses SQL braucht nur bei Bedarf in einer PostNAS-DB verarbeitet werden.
10--  Es werden zusÀtzliche Views einegerichtet, die nur bei Fehlersuche und Analys (vom Entwickler) benötigt werden.
11
12--  PostNAS 0.7
13
14--  2012-04-17 flstnr_ohne_position
15--  2012-04-24 pauschal Filter 'endet IS NULL' um historische Objekte auszublenden
16--  2012-10-29 Redundanzen in Beziehungen suchen (entstehen durch replace)
17--  2013-02-20 Mehrfache Buchungsstellen zum FS suchen, dies sind Auswirkungen eines Fehlers bei Replace
18--  2013-03-05 Beschriftungen aus ap_pto auseinander sortieren, neuer View "grenzpunkt"
19--  2013-03-12 Optimierung Hausnummern, View "gebaeude_txt" (Funktion und Name)
20--  2013-04-15 UnterdrÃŒcken doppelter Darstellung in den Views 'ap_pto_stra', 'ap_pto_nam', 'ap_pto_rest'
21--  2013-04-16 Thema "BodenschÀtzung" und fehlernde Kommentare zum Views ergÀnzt.
22--             Diese Datei aufgeteilt in "sichten.sql" und "sichten_wms.sql"
23
24
25-- Welche Karten-Typen ?
26CREATE OR REPLACE VIEW kartentypen_der_texte_fuer_hnr
27AS
28   SELECT DISTINCT advstandardmodell
29   FROM ap_pto p
30   WHERE p.art = 'HNR';
31COMMENT ON VIEW kartentypen_der_texte_fuer_hnr
32  IS 'Datenanalyse: Kartentypen in Tabelle ap_pto fÃŒr Hausnummern.';
33
34-- Dies liefert:
35--  "{DKKM1000}"
36--  "{DKKM1000,DKKM500}"
37--  "{DKKM500}"
38--  NULL
39
40-- Texte, die NICHT dargestellt werden sollen.
41-- -------------------------------------------
42-- Texte und Text-Fragmente aus der Konvertierung ALK+ALB, die noch nicht gelöscht worden sind.
43CREATE OR REPLACE VIEW ap_pto_muell
44AS
45  SELECT p.ogc_fid,
46         p.schriftinhalt,
47         p.art,
48         p.drehwinkel * 57.296 AS winkel, -- * 180 / Pi
49         p.wkb_geometry
50    FROM ap_pto p
51   WHERE not p.schriftinhalt IS NULL
52     AND p.endet IS NULL
53     AND p.art IN ('AOG_AUG','PNR');
54COMMENT ON VIEW ap_pto_muell
55 IS 'Datenanalyse: Beschriftungen aus "ap_pto", die NICHT dargestellt werden sollen.';
56
57
58-- FlurstÃŒcke mit Anzeige der FlurstÃŒcksnummer an der "Standardposition"
59
60-- Nach der Konvertierung aus ALK hat zunÀchst jedes FlurstÌck eine explizit gesetzte Position der FlurstÌcksnummer.
61
62-- Nach einer manuellen Teilung bekommen die neuen FlurstÃŒcke im ALKIS nur dann eine Position,
63-- wenn die Positioin manuell bestimmt (verschoben) wurde.
64-- Wenn die FlurstÃŒcksnummer an ihrer "Standardposition" angezeigt werden soll,
65-- dann wird diese in den Daten (DHK, NAS) nicht gesetzt.
66-- Der Konverter PostNAS konvertiert aber nur die Daten, die er bekommt, er setzt nicht die Standard-Position
67-- fÃŒr die FlurstÃŒcke, die ohne eine manuelle Position kommen.
68
69-- Diese FÀlle identifizieren
70CREATE OR REPLACE VIEW flstnr_ohne_position
71AS
72 SELECT f.gml_id,
73        f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS such -- Suchstring fÃŒr ALKIS-Navigation nach FS-Kennzeichen
74 FROM        ax_flurstueck     f
75   LEFT JOIN alkis_beziehungen v  ON v.beziehung_zu = f.gml_id
76 --LEFT JOIN ap_pto            p  ON p.gml_id       = v.beziehung_von
77  WHERE v.beziehungsart is NULL
78    AND f.endet IS NULL
79--ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler
80  ;
81COMMENT ON VIEW flstnr_ohne_position IS 'Sicht fÌr Datenanalyse: FlurstÌcke ohne manuell gesetzte Position fÌr die PrÀsentation der FS-Nr';
82
83-- Umbruch im Label? z.B. "Schwimm-/nbecken"
84-- Sind 2 Buchstaben in Mapfile bei "WRAP" möglich?
85CREATE OR REPLACE VIEW texte_mit_umbruch
86AS
87 SELECT ogc_fid, schriftinhalt, art
88   FROM ap_pto
89  WHERE not schriftinhalt is null
90    AND schriftinhalt like '%/n%';
91COMMENT ON VIEW texte_mit_umbruch
92 IS 'Sicht fÃŒr Datenanalyse: Vorkommen eines Umbruchs im Label-Text.';
93
94-- EXTENT fÃŒr das Mapfile eines Mandanten ermitteln
95CREATE OR REPLACE VIEW flurstuecks_minmax AS
96 SELECT min(st_xmin(wkb_geometry)) AS r_min,
97        min(st_ymin(wkb_geometry)) AS h_min,
98        max(st_xmax(wkb_geometry)) AS r_max,
99        max(st_ymax(wkb_geometry)) AS h_max
100   FROM ax_flurstueck f
101   WHERE f.endet IS NULL;
102COMMENT ON VIEW flurstuecks_minmax
103 IS 'Sicht fÃŒr Datenanalyse: Maximale Ausdehnung von ax_flurstueck fuer EXTENT-Angabe im Mapfile.';
104
105-- Nach Laden der Keytables:
106CREATE OR REPLACE VIEW baurecht
107AS
108  SELECT r.ogc_fid,
109         r.wkb_geometry,
110         r.gml_id,
111         r.artderfestlegung as adfkey, -- Art der Festlegung - Key
112         r."name",                     -- Eigenname des Gebietes
113         r.stelle,                     -- Stelle Key
114         r.bezeichnung AS rechtbez,    -- Verfahrensnummer
115         a.bezeichner  AS adfbez,      -- Art der Festlegung - Bezeichnung
116         d.bezeichnung AS stellbez     -- Stelle Bezeichnung
117      -- , d.stellenart                -- weiter entschluesseln?
118    FROM ax_bauraumoderbodenordnungsrecht r
119    LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a
120      ON r.artderfestlegung = a.wert
121    LEFT JOIN ax_dienststelle d
122      ON r.land   = d.land
123     AND r.stelle = d.stelle
124  WHERE r.endet IS NULL AND d.endet IS NULL ;
125COMMENT ON VIEW baurecht
126 IS 'Datenanalyse: EnstschlÃŒsselte Felder zu einer FlÀche des Baurechts.';
127
128-- Man glaubt es kaum, aber im ALKIS haben Gemeinde und Gemarkung keinerlei Beziehung miteinander
129-- Nur durch Auswertung der FlurstÃŒcke kann man ermitteln, in welcher Gemeinde eine Gemarkung liegt.
130CREATE OR REPLACE VIEW gemarkung_in_gemeinde
131AS
132  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
133  FROM            ax_flurstueck
134  WHERE           endet IS NULL
135  ORDER BY        land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer;
136COMMENT ON VIEW gemarkung_in_gemeinde
137 IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.';
138
139
140-- Untersuchen, welche Geometrie-Typen vorkommen
141CREATE OR REPLACE VIEW arten_von_flurstuecksgeometrie
142AS
143 SELECT   count(gml_id) as anzahl,
144          st_geometrytype(wkb_geometry)
145 FROM     ax_flurstueck
146 WHERE    endet IS NULL
147 GROUP BY st_geometrytype(wkb_geometry);
148COMMENT ON VIEW arten_von_flurstuecksgeometrie IS 'Datenanalyse: vorkommende Geometry-Typen in Tabelle ax_flurstueck.';
149
150
151-- A d r e s s e n
152
153-- Verschluesselte Lagebezeichnung (Strasse und Hausnummer) fuer eine Gemeinde
154-- Schluessel der Gemeinde nach Bedarf anpassen!
155CREATE OR REPLACE VIEW adressen_hausnummern
156AS
157    SELECT
158        s.bezeichnung AS strassenname,
159        g.bezeichnung AS gemeindename,
160        l.land,
161        l.regierungsbezirk,
162        l.kreis,
163        l.gemeinde,
164        l.lage        AS strassenschluessel,
165        l.hausnummer
166    FROM   ax_lagebezeichnungmithausnummer l 
167    JOIN   ax_gemeinde g
168      ON l.kreis=g.kreis
169     AND l.gemeinde=g.gemeinde
170    JOIN   ax_lagebezeichnungkatalogeintrag s
171      ON l.kreis=s.kreis
172     AND l.gemeinde=s.gemeinde
173     AND l.lage = s.lage
174    WHERE l.gemeinde = 40;  -- "40" = Stadt Lage
175COMMENT ON VIEW adressen_hausnummern IS 'Datenanalyse: VerschlÃŒsselte Lagebezeichnung (Straße und Hausnummer) fÃŒr eine Gemeinde. SchlÃŒssel der Gemeinde nach Bedarf anpassen.';
176
177-- Zuordnung dieser Adressen zu Flurstuecken
178-- Schluessel der Gemeinde nach Bedarf anpassen!
179CREATE OR REPLACE VIEW adressen_zum_flurstueck
180AS
181    SELECT
182           f.gemarkungsnummer,
183           f.flurnummer,
184           f.zaehler,
185           f.nenner,
186           g.bezeichnung AS gemeindename,
187           s.bezeichnung AS strassenname,
188           l.lage        AS strassenschluessel,
189           l.hausnummer
190      FROM   ax_flurstueck f
191      JOIN   alkis_beziehungen v
192        ON f.gml_id=v.beziehung_von
193      JOIN   ax_lagebezeichnungmithausnummer l 
194        ON l.gml_id=v.beziehung_zu
195      JOIN   ax_gemeinde g
196        ON l.kreis=g.kreis
197       AND l.gemeinde=g.gemeinde
198      JOIN   ax_lagebezeichnungkatalogeintrag s
199        ON l.kreis=s.kreis
200       AND l.gemeinde=s.gemeinde
201       AND l.lage = s.lage
202     WHERE v.beziehungsart='weistAuf'
203       AND l.gemeinde = 40  -- "40" = Stadt Lage
204     ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;
205COMMENT ON VIEW adressen_zum_flurstueck IS 'Datenanalyse: Zuordnung von Adressen zu Flurstuecken. SchlÃŒssel der Gemeinde nach Bedarf anpassen.';
206
207-- Punktförmige  P r À s e n t a t i o n s o b j k t e  (ap_pto)
208-- Ermittlung der vorkommenden Arten
209CREATE OR REPLACE VIEW beschriftung_was_kommt_vor
210AS
211  SELECT DISTINCT art, horizontaleausrichtung, vertikaleausrichtung
212    FROM ap_pto
213   WHERE not schriftinhalt is null
214  ORDER BY art;
215COMMENT ON VIEW beschriftung_was_kommt_vor IS 'Analyse der vorkommenden Kombinationen in ap_pto (Beschriftung)';
216
217-- Ergebnis:
218-- 2013: PostNAS 0.7  (aus 150,260,340)
219-- ------------------
220--      "AOG_AUG"                               "zentrisch";"Basis"  - Schriftinhalkt immer nur "I" ?
221--      "BWF"                                   "zentrisch";"Basis"/"zentrisch";"Mitte"
222--      "BWF_ZUS"                               "zentrisch";"Basis"
223--      "FKT"                                   "zentrisch";"Basis"/"linksbÃŒndig";"Basis"/"zentrisch";"Mitte"
224--      "FKT_TEXT"                              "zentrisch";"Mitte"
225--      "FreierText"                    "zentrisch";"Basis"/"zentrisch";"Mitte"/"linksbÃŒndig";"Basis"
226--      "FreierTextHHO"                 "zentrisch";"Mitte"
227--      "Friedhof"                              "zentrisch";"Basis"
228--      "Gewanne"                               "zentrisch";"Basis"/"zentrisch";"Mitte"
229--      "GFK"                                   "zentrisch";"Basis"/"zentrisch";"Mitte"
230--      "HNR"                                   "zentrisch";"Basis"/"linksbÃŒndig";"Basis"/"zentrisch";"Mitte"  --> Hausnummer, group gebaeude
231--      "HHO"                                   "zentrisch";"Mitte"  -- HHO = objekthoehe zu ax_gebaeude?
232--      "NAM"                                   "zentrisch";"Basis"/"zentrisch";"Mitte"/"linksbÃŒndig";"Basis"
233--      "SPO"                                   "zentrisch";"Basis"/
234--      "Vorratsbehaelter"              "zentrisch";"Basis"
235--      "WeitereHoehe"                  "zentrisch";"Mitte"
236--      "ZAE_NEN"                               "zentrisch";"Basis"
237--      "ZNM"                                   "zentrisch";"Basis"/"linksbÃŒndig";"Basis"
238
239--* Layer "ap_pto_stra"
240--                          hor ; ver / hor ; ver
241--      "BezKlassifizierungStrasse" "zent.";"Basis"     / "linksbÃŒndig";"Basis"
242--      "Platz"                                 "zentrisch";"Basis" / "zentrisch";"Mitte"
243--      "Strasse"                               "zentrisch";"Basis" / "zentrisch";"Mitte" / "linksbÃŒndig";"Basis"
244--      "Weg"                                   "zentrisch";"Basis" / "zentrisch";"Mitte" / "linksbÃŒndig";"Basis"
245
246--* geplanter layer "ap_pto_wasser"
247--      "StehendesGewaesser"    "zentrisch";"Basis"
248--      "Fliessgewaesser"               "zentrisch";"Basis"/"linksbÃŒndig";"Basis"
249
250
251-- FlurstÃŒcke eines EigentÃŒmers
252-- ----------------------------
253
254-- Dieser View liefert nur die (einfache) Buchungsart "GrundstÃŒck"
255-- Solche FÀlle wie "Erbbaurecht an GrundstÌck" oder "Wohnungs-/Teileigentum an aufgeteiltes GrundstÌck"
256-- oder "Miteigentum an aufteteiltes GrundstÃŒck" fehlen in deisere Auswertung.
257-- Dazu siehe: "rechte_eines_eigentuemers".
258
259-- Das Ergbenis ist gedacht fÃŒr den Export als CSV und Weiterverarbeitung mit einer Tabellenkalkulation
260-- oder einer einfachen Datenbank.
261
262-- Auch ein Export als Shape ist moeglich (dafuer: geom hinzugefuegt, Feldnamen gekuerzt)
263-- Kommando:
264--  pgsql2shp -h localhost -p 5432 -f "/data/.../alkis_fs_gemeinde.shp"  [db-name]  public.flurstuecke_eines_eigentuemers
265
266-- Übersicht der Tabellen:
267--
268-- Person <benennt< NamNum. >istBestandteilVon> Blatt <istBestandteilVon< Stelle >istGebucht> Flurstueck
269--                                              *-> Bezirk                *-> Buchungsart     *-> Gemarkung
270
271-- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx".
272
273CREATE OR REPLACE VIEW flurstuecke_eines_eigentuemers
274AS
275   SELECT
276      k.bezeichnung                AS gemarkung,
277      k.gemarkungsnummer           AS gemkg_nr,
278      f.flurnummer                 AS flur,
279      f.zaehler                    AS fs_zaehler,
280      f.nenner                     AS fs_nenner,
281      f.amtlicheflaeche            AS flaeche,
282      f.wkb_geometry               AS geom,  -- fuer Export als Shape
283   -- g.bezirk,
284      b.bezeichnung                AS bezirkname,
285      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
286      g.blattart,
287      s.laufendenummer             AS bvnr,
288      art.bezeichner               AS buchgsart,
289   -- s.zaehler || '/' || s.nenner AS buchg_anteil,
290      n.laufendenummernachdin1421  AS name_num,
291   -- n.zaehler || '/' || n.nenner AS nam_anteil,
292      p.nachnameoderfirma          AS nachname --,
293   -- p.vorname
294   FROM       ax_person              p
295        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id
296        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id
297        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von
298        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id
299        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk
300        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id
301        JOIN  ax_buchungsstelle      s    ON s.gml_id = bgs.beziehung_von
302        JOIN  ax_buchungsstelle_buchungsart art ON s.buchungsart = art.wert
303        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = s.gml_id
304        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von
305        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer
306   WHERE p.nachnameoderfirma LIKE 'Gemeinde %'   -- ** Bei Bedarf anpassen!
307     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person
308     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch
309     AND bgs.beziehungsart = 'istBestandteilVon' -- Buchungs-Stelle >> Grundbuch
310     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> Buchungs-Stelle
311     AND p.endet IS NULL AND n.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL
312     AND s.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL
313   ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer;
314COMMENT ON VIEW flurstuecke_eines_eigentuemers IS 'Muster fÃŒr Export: Suchkriteriumnach Bedarf anpassen.';
315
316-- Rechte eines EigentÃŒmers
317-- ------------------------
318-- Dieser View sucht speziell die FÀlle wo eine Buchungsstelle ein Recht "an" einer anderen Buchungsstelle hat.
319--  - "Erbbaurecht *an* GrundstÃŒck"
320--  - "Wohnungs-/Teileigentum *an* Aufgeteiltes GrundstÃŒck"
321--  - "Miteigentum *an* Aufteteiltes GrundstÃŒck"
322-- Suchkriterium ist der Name des EigentÃŒmers auf dem "herrschenden" Grundbuch, also dem Besitzer des Rechtes.
323
324-- Diese FÀlle fehlen im View "flurstuecke_eines_eigentuemers".
325
326-- Übersicht der Tabellen:
327-- Person <benennt< NamNum. >istBestandteilVon> Blatt <istBestandteilVon< Stelle-h >an> Stelle-d >istGebucht> Flurstueck
328-- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx".
329
330CREATE OR REPLACE VIEW rechte_eines_eigentuemers
331AS
332   SELECT
333      k.bezeichnung                AS gemarkung,
334      k.gemarkungsnummer           AS gemkg_nr,
335      f.flurnummer                 AS flur,
336      f.zaehler                    AS fs_zaehler,
337      f.nenner                     AS fs_nenner,
338      f.amtlicheflaeche            AS flaeche,
339      f.wkb_geometry               AS geom,  -- fuer Export als Shape
340   -- g.bezirk,
341      b.bezeichnung                AS bezirkname,
342      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
343   -- g.blattart,
344      sh.laufendenummer            AS bvnr_herr,
345      sh.zaehler || '/' || sh.nenner AS buchg_anteil_herr,
346      arth.bezeichner              AS buchgsa_herr,
347      bss.beziehungsart            AS bez_art,
348      artd.bezeichner              AS buchgsa_dien,
349      sd.laufendenummer            AS bvnr_dien,
350   -- sd.zaehler || '/' || sd.nenner AS buchg_anteil_dien,
351      n.laufendenummernachdin1421  AS name_num,
352   -- n.zaehler || '/' || n.nenner AS nam_anteil,
353      p.nachnameoderfirma          AS nachname --, 
354   -- p.vorname
355   FROM       ax_person              p
356        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id
357        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id
358        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von
359        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id
360        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk
361        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id
362        JOIN  ax_buchungsstelle      sh   ON sh.gml_id = bgs.beziehung_von  -- herrschende Buchung
363        JOIN  ax_buchungsstelle_buchungsart arth ON sh.buchungsart = arth.wert
364        JOIN  alkis_beziehungen      bss  ON sh.gml_id = bss.beziehung_von
365        JOIN  ax_buchungsstelle      sd   ON sd.gml_id = bss.beziehung_zu   -- dienende Buchung
366        JOIN  ax_buchungsstelle_buchungsart artd ON sd.buchungsart = artd.wert
367        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = sd.gml_id
368        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von
369        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer
370   WHERE p.nachnameoderfirma LIKE 'Stadt %'   -- ** Bei Bedarf anpassen!
371     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person
372     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch
373     AND bgs.beziehungsart = 'istBestandteilVon' -- B-Stelle herr   >> Grundbuch
374     AND bss.beziehungsart in ('an','zu')        -- B-Stelle herr.  >> B-Stelle dien.
375     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> B-Stelle dien
376     AND p.endet IS NULL AND n.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL
377     AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL
378   ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, sh.laufendenummer;
379COMMENT 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.';
380
381-- Die 2 Views nur fuer Entwicklung:
382
383--      CREATE OR REPLACE VIEW beziehungen_redundant
384--      AS
385--       SELECT *
386--         FROM alkis_beziehungen AS bezalt
387--         WHERE EXISTS
388--                 (SELECT ogc_fid
389--                       FROM alkis_beziehungen AS bezneu
390--                      WHERE bezalt.beziehung_von = bezneu.beziehung_von
391--                        AND bezalt.beziehung_zu  = bezneu.beziehung_zu
392--                        AND bezalt.beziehungsart = bezneu.beziehungsart
393--                        AND bezalt.ogc_fid       < bezneu.ogc_fid
394--                      );
395--      COMMENT ON VIEW beziehungen_redundant IS 'Datenanalyse: alkis_beziehungen zu denen es eine identische neue Version gibt. Fehlersuche bei PostNAS-Trigger fÃŒr Replace.';
396--
397--      CREATE OR REPLACE VIEW beziehungen_redundant_in_delete
398--      AS
399--      SELECT *
400--       FROM alkis_beziehungen AS bezalt
401--       WHERE EXISTS
402--                 (SELECT ogc_fid
403--                       FROM alkis_beziehungen AS bezneu
404--                      WHERE bezalt.beziehung_von = bezneu.beziehung_von
405--                        AND bezalt.beziehung_zu  = bezneu.beziehung_zu
406--                        AND bezalt.beziehungsart = bezneu.beziehungsart
407--                        AND bezalt.ogc_fid       < bezneu.ogc_fid
408--                      )
409--               -- mit dem Zusatz nur die Faelle aus dem letzten Durchlauf,
410--               -- die aktuell noch in der Delete-Tabelle stehen
411--               AND EXISTS
412--                      (SELECT ogc_fid
413--                       FROM delete
414--                       WHERE bezalt.beziehung_von = substr(featureid, 1, 16)
415--                              OR bezalt.beziehung_zu  = substr(featureid, 1, 16)
416--                      );
417--      COMMENT ON VIEW beziehungen_redundant_in_delete IS 'Datenanalyse: alkis_beziehungen zu denen es eine identische neue Version gibt und wo das Objekt noch in der delete-Tabelle vorkommt. Fehlersuche bei PostNAS-Trigger fÃŒr Replace.';
418
419
420-- Suche nach Fehler durch "Replace"
421-- Wenn ax_flurstueck ÃŒber "replace" ausgetauscht wird und dabei gleichzeitig eine andere
422-- Buchungsstelle bekommt, dann bleibt die alte Buchungsstelle in den alkis_beziehungen.
423-- Mail PostNAS Mailingliste von 2013-02-20
424CREATE OR REPLACE VIEW mehrfache_buchung_zu_fs
425AS
426  SELECT f.gml_id, count(b.ogc_fid) AS anzahl
427    FROM ax_flurstueck f
428    JOIN alkis_beziehungen b
429      ON f.gml_id = b.beziehung_von
430  WHERE b.beziehungsart = 'istGebucht'
431  GROUP BY f.gml_id
432  HAVING count(b.ogc_fid) > 1;
433
434-- Noch einfacher? - Auch ohne JOIN wird das selbe Ergebnis geliefert.
435-- Doppelte Verweise zÀhlen ohne zu prÌfen, ob die gml_id in ax_flurstueck existiert.
436--   SELECT b.beziehung_von, count(b.ogc_fid) AS anzahl
437--     FROM alkis_beziehungen b
438--    WHERE b.beziehungsart = 'istGebucht'
439--   GROUP BY b.beziehung_von
440--   HAVING count(b.ogc_fid) > 1;
441
442COMMENT ON VIEW mehrfache_buchung_zu_fs IS 'Nach replace von ax_flurtstueck mit einer neuen ax_buchungsstelle bleibt die alte Verbindung in alkis_beziehungen';
443
444-- END --
Note: See TracBrowser for help on using the repository browser.