source: trunk/import/sichten.sql @ 276

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

Views um Thema "Bodenschätzung" erweitert, Mapbender-Nav korrigiert, sichten.sql wurde geteilt

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