source: trunk/data/konvert/postnas_0.7/sichten.sql @ 164

Revision 162, 23.6 KB checked in by frank.jaeger, 12 years ago (diff)

Entwurf: Post-Processing-Scripte Flur/Gemarkung/Gemeinde?

Line 
1-- =====
2-- ALKIS
3-- =====
4
5--  PostNAS 0.7
6
7--  2012-02-25 PostNAS 07, Umbenennung
8
9--  -----------------------------------------
10--  Sichten fuer Verwendung im mapfiles (wms)
11--  -----------------------------------------
12
13
14-- Layer "ag_t_flurstueck"
15-- -----------------------
16
17-- Die Geometrie befindet sich in "ap_pto", der Label in "ax_flurstueck"
18-- Die Verbindung erfolgt ÃŒber "alkis_beziehungen"
19
20
21-- Bruchnummerierung erzeugen
22CREATE OR REPLACE VIEW s_flurstueck_nr
23AS
24 SELECT ap_pto.ogc_fid,
25        ap_pto.wkb_geometry,   -- Position des Textes
26    --  ax_flurstueck.flurstueckskennzeichen,   -- am Stueck, aufgefuellt, unpraktisch
27    --  ax_flurstueck.gemarkungsnummer,  -- integer
28    --  ax_flurstueck.flurnummer,        -- integer
29    --  ax_flurstueck.zaehler,           -- integer
30    --  ax_flurstueck.nenner,            -- integer oder NULL
31        ax_flurstueck.zaehler::text || COALESCE ('/' || ax_flurstueck.nenner::text, '') AS fsnum
32   FROM ap_pto
33   JOIN alkis_beziehungen
34     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
35   JOIN ax_flurstueck
36     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
37  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'
38  ;
39
40COMMENT ON VIEW s_flurstueck_nr IS 'fuer Kartendarstellung: Bruchnummerierung FlurstÃŒck';
41
42
43-- Layer "ag_t_gebaeude"
44-- ---------------------
45
46-- Problem: Zu einigen GebÀuden gibt es mehrere Hausnummern.
47-- Diese unterscheiden sich im Feld ap-pto.advstandardmodell
48-- z.B. 3 verschiedene EintrÀge mit <NULL>, {DKKM500}, {DKKM1000}, (Beispiel; Lage, Lange Straße 15 c)
49
50
51CREATE OR REPLACE VIEW s_hausnummer_gebaeude
52AS
53 SELECT ap_pto.ogc_fid,
54        ap_pto.wkb_geometry, -- Point
55        ap_pto.drehwinkel * 57.296 AS drehwinkel,   -- umn: ANGLE [drehwinkel]
56        ax_lagebezeichnungmithausnummer.hausnummer  -- umn: LABELITEM
57   FROM ap_pto
58   JOIN alkis_beziehungen
59     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
60   JOIN ax_lagebezeichnungmithausnummer
61     ON alkis_beziehungen.beziehung_zu  = ax_lagebezeichnungmithausnummer.gml_id
62  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
63
64COMMENT ON VIEW s_hausnummer_gebaeude IS 'fuer Kartendarstellung: Hausnummern HauptgebÀude';
65
66
67-- Layer "ag_t_nebengeb"
68-- ---------------------
69
70CREATE OR REPLACE VIEW s_nummer_nebengebaeude
71AS
72 SELECT ap_pto.ogc_fid,
73        ap_pto.wkb_geometry,
74        ap_pto.drehwinkel * 57.296 AS drehwinkel,        -- umn: ANGLE [drehwinkel]
75     -- alkis_beziehungen.beziehungsart,                 -- TEST
76     -- ax_lagebezeichnungmitpseudonummer.pseudonummer,  -- die HsNr des zugehoerigen Hauptgebaeudes
77        ax_lagebezeichnungmitpseudonummer.laufendenummer -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes
78   FROM ap_pto
79   JOIN alkis_beziehungen
80     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
81   JOIN ax_lagebezeichnungmitpseudonummer
82     ON alkis_beziehungen.beziehung_zu  = ax_lagebezeichnungmitpseudonummer.gml_id
83  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'
84;
85
86COMMENT ON VIEW s_nummer_nebengebaeude IS 'fuer Kartendarstellung: Hausnummern NebengebÀude';
87
88
89-- Layer "ag_p_flurstueck"
90-- -----------------------
91
92CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck
93AS
94 SELECT ap_ppo.ogc_fid,
95        ap_ppo.wkb_geometry,
96        ap_ppo.drehwinkel * 57.296 AS drehwinkel,
97        ax_flurstueck.flurstueckskennzeichen
98   FROM ap_ppo
99   JOIN alkis_beziehungen
100     ON ap_ppo.gml_id = alkis_beziehungen.beziehung_von
101   JOIN ax_flurstueck
102     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
103  WHERE ap_ppo.art = 'Haken'
104    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
105
106COMMENT ON VIEW s_zugehoerigkeitshaken_flurstueck IS 'fuer Kartendarstellung';
107
108
109-- Layer "s_zuordungspfeil_flurstueck"
110-- -----------------------------------
111
112CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck
113AS
114 SELECT ap_lpo.ogc_fid,
115        ap_lpo.wkb_geometry
116   FROM ap_lpo
117   JOIN alkis_beziehungen
118     ON ap_lpo.gml_id = alkis_beziehungen.beziehung_von
119   JOIN ax_flurstueck
120     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
121  WHERE ap_lpo.art = 'Pfeil'
122    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'
123    AND ('DKKM1000' ~~ ANY (ap_lpo.advstandardmodell));
124
125COMMENT ON VIEW s_zuordungspfeil_flurstueck IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer';
126
127
128CREATE OR REPLACE VIEW s_zuordungspfeilspitze_flurstueck
129AS
130 SELECT ap_lpo.ogc_fid, (((st_azimuth(st_pointn(ap_lpo.wkb_geometry, 1),
131        st_pointn(ap_lpo.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel,
132        st_startpoint(ap_lpo.wkb_geometry) AS wkb_geometry
133   FROM ap_lpo
134   JOIN alkis_beziehungen
135     ON ap_lpo.gml_id = alkis_beziehungen.beziehung_von
136   JOIN ax_flurstueck
137     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
138  WHERE ap_lpo.art = 'Pfeil'
139    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'
140    AND ('DKKM1000' ~~ ANY (ap_lpo.advstandardmodell));
141
142COMMENT ON VIEW s_zuordungspfeilspitze_flurstueck IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer, Spitze';
143
144
145
146-- Layer NAME "ap_pto" GROUP "praesentation"
147-- ----------------------------------------
148-- Texte, die nicht schon in einem anderen Layer ausgegeben werden
149
150CREATE OR REPLACE VIEW s_beschriftung
151AS
152  SELECT ap_pto.ogc_fid,
153         ap_pto.schriftinhalt,
154         ap_pto.art,
155         ap_pto.drehwinkel * 57.296 AS winkel, -- * 180 / Pi
156         ap_pto.wkb_geometry
157    FROM ap_pto
158   WHERE not ap_pto.schriftinhalt IS NULL
159     AND art NOT IN ('HNR', 'PNR');
160
161-- Feb. 2012 PostNAS 0.6: 'ZAE_NEN' kommt nicht mehr vor!
162
163-- Diese 'IN'-Liste fortschreiben bei Erweiterungen des Mapfiles
164-- Wenn ein Text zum fachlich passenden Layer angezeigt wird, dann hier ausblenden,
165-- d.h. die Kennung in die Klammer eintragen.
166
167-- Werte in ap_pto.art:
168-- 'HNR'  = Hausnummer
169-- 'PNR'  = Pseudo-Nummer = laufende Nummer NebengebÀude
170
171-- Ermittlung der vorkommenden Arten mit:
172--   SELECT DISTINCT art FROM ap_pto ORDER BY art;
173
174-- Noch nicht berÃŒcksichtigt:
175   
176--"AGT""ART""ATP""BBD""BezKlassifizierungStrasse""BSA""BWF""BWF_ZUS""FKT""Fliessgewaesser""FreierText"
177--"Friedhof""Gewanne""GFK""Halde_LGT""HHO""NAM""PKN""Platz""PRO""SPG""SPO""StehendesGewaesser"
178--"Strasse""VEG""Vorratsbehaelter""Weg""Weitere Höhe""ZNM""<NULL>"
179
180COMMENT ON VIEW s_beschriftung IS 'ap_pto, die noch nicht in anderen Layern angezeigt werden';
181
182
183-- Layer "s_zuordungspfeil_gebaeude"
184-- -----------------------------------
185
186CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude
187AS
188 SELECT ap_lpo.ogc_fid,
189     -- alkis_beziehungen.beziehungsart, -- TEST
190     -- ap_lpo.art, -- TEST
191        ap_lpo.wkb_geometry
192   FROM ap_lpo
193   JOIN alkis_beziehungen
194     ON ap_lpo.gml_id = alkis_beziehungen.beziehung_von
195   JOIN ax_gebaeude
196     ON alkis_beziehungen.beziehung_zu = ax_gebaeude.gml_id
197  WHERE ap_lpo.art = 'Pfeil'
198    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
199
200COMMENT ON VIEW s_zuordungspfeil_gebaeude IS 'fuer Kartendarstellung: Zuordnungspfeil fÌr GebÀude-Nummer';
201
202
203-- Sichten vom OBK (Oberbergischer Kreis)
204-- --------------------------------------
205
206-- Dazu notwendig: Feld "ax_besondereflurstuecksgrenze.artderflurstuecksgrenze" als Array "integer[]" !
207-- Anpassung DB-Schema erfolgte am 18.09.2011
208
209
210CREATE VIEW sk2004_zuordnungspfeil
211AS
212 SELECT ap.ogc_fid, ap.wkb_geometry
213 FROM ap_lpo ap
214 WHERE ((ap.signaturnummer = 2004)
215   AND ('DKKM1000'::text ~~ ANY ((ap.advstandardmodell)::text[])));
216
217COMMENT ON VIEW sk2004_zuordnungspfeil IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer"';
218-- krz: ap.signaturnummer is NULL in allen SÀtzen
219--      Siehe s_zuordungspfeil_flurstueck
220
221CREATE VIEW sk2004_zuordnungspfeil_spitze
222AS
223 SELECT ap.ogc_fid, (((st_azimuth(st_pointn(ap.wkb_geometry, 1),
224        st_pointn(ap.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel,
225        st_startpoint(ap.wkb_geometry) AS wkb_geometry
226 FROM ap_lpo ap
227 WHERE ((ap.signaturnummer = 2004)
228   AND ('DKKM1000'::text ~~ ANY ((ap.advstandardmodell)::text[])));
229-- krz: ap.signaturnummer is NULL in allen SÀtzen
230
231
232CREATE OR REPLACE VIEW sk2012_flurgrenze
233AS
234 SELECT fg.ogc_fid, fg.wkb_geometry
235   FROM ax_besondereflurstuecksgrenze fg
236  WHERE (3000 = ANY (fg.artderflurstuecksgrenze))
237    AND fg.advstandardmodell ~~ 'DLKM'::text;
238
239COMMENT ON VIEW sk2012_flurgrenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Flurgrenze"';
240
241
242CREATE OR REPLACE VIEW sk2014_gemarkungsgrenze
243AS
244 SELECT gemag.ogc_fid, gemag.wkb_geometry
245   FROM ax_besondereflurstuecksgrenze gemag
246  WHERE (7003 = ANY (gemag.artderflurstuecksgrenze))
247    AND gemag.advstandardmodell ~~ 'DLKM'::text;
248
249COMMENT ON VIEW sk2014_gemarkungsgrenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemarkungsgrenze"';
250
251
252CREATE OR REPLACE VIEW sk2018_bundeslandgrenze
253AS
254 SELECT blg.ogc_fid, blg.wkb_geometry
255   FROM ax_besondereflurstuecksgrenze blg
256  WHERE (7102 = ANY (blg.artderflurstuecksgrenze))
257    AND blg.advstandardmodell ~~ 'DLKM'::text;
258
259COMMENT ON VIEW sk2018_bundeslandgrenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Bundeslandgrenze"';
260
261
262CREATE OR REPLACE VIEW sk2020_regierungsbezirksgrenze
263AS
264 SELECT rbg.ogc_fid, rbg.wkb_geometry
265   FROM ax_besondereflurstuecksgrenze rbg
266  WHERE (7103 = ANY (rbg.artderflurstuecksgrenze))
267    AND rbg.advstandardmodell ~~ 'DLKM'::text;
268
269COMMENT ON VIEW sk2020_regierungsbezirksgrenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Regierungsbezirksgrenze"';
270
271
272CREATE OR REPLACE VIEW sk2022_gemeindegrenze
273AS
274 SELECT gemg.ogc_fid, gemg.wkb_geometry
275   FROM ax_besondereflurstuecksgrenze gemg
276  WHERE (7106 = ANY (gemg.artderflurstuecksgrenze))
277    AND gemg.advstandardmodell ~~ 'DLKM'::text;
278
279COMMENT ON VIEW sk2022_gemeindegrenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemeindegrenze"';
280
281
282-- Zusammenfassung "Politische Grenzen"  Art= 7102, 7103, 7104, 7106
283
284-- Grenze der Bundesrepublik Deutschland 7101 (G)
285-- Grenze des Bundeslandes 7102 (G)
286-- Grenze des Regierungsbezirks 7103 (G)
287-- Grenze des Landkreises 7104 (G)
288-- Grenze der Gemeinde 7106
289-- Grenze des Gemeindeteils 7107
290-- Grenze der Verwaltungsgemeinschaft 7108
291
292CREATE OR REPLACE VIEW sk201x_politische_grenze
293AS
294 SELECT ogc_fid, artderflurstuecksgrenze as art, wkb_geometry
295   FROM ax_besondereflurstuecksgrenze
296
297-- WHERE ( ANY (artderflurstuecksgrenze) IN (7102,7103,7104,7106) )
298
299  WHERE (7102 = ANY (artderflurstuecksgrenze)
300     OR  7102 = ANY (artderflurstuecksgrenze)
301     OR  7103 = ANY (artderflurstuecksgrenze)
302     OR  7104 = ANY (artderflurstuecksgrenze)
303     OR  7106 = ANY (artderflurstuecksgrenze)
304    )
305    AND advstandardmodell ~~ 'DLKM'::text;
306
307COMMENT ON VIEW sk201x_politische_grenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze Politische Grenzen (Bund, Land, Kreis, Gemeinde)';
308-- GefÀllt mir nicht!
309-- Array-Felder eignen sich nicht als Filter. Optimierung: in Tabelle speichern
310
311
312--  ------------------------------------------
313--  Sichten fuer Fehlersuche und Daten-Analyse
314--  ------------------------------------------
315
316-- Zeigt die Texte an, die nicht in einem der Mapfile-Views verarbeitet werden
317CREATE OR REPLACE VIEW s_allgemeine_texte
318AS
319 SELECT ap_pto.ogc_fid,
320      --ap_pto.wkb_geometry,
321      --ap_pto.gml_id,
322        ap_pto.art,
323        ap_pto.drehwinkel * 57.296 AS drehwinkel,   -- * 180 / Pi
324        ap_pto.schriftinhalt
325   FROM ap_pto
326  WHERE NOT ap_pto.art = 'ZAE_NEN'
327    AND NOT ap_pto.art = 'HNR'
328    AND NOT ap_pto.art = 'FKT'
329    AND NOT ap_pto.art = 'Friedhof'
330    AND ap_pto.schriftinhalt IS NOT NULL;
331
332
333-- Analyse zu o.g. Fehler:
334--  Welche Inhalte kommen im Feld ap_pto.art vor?
335CREATE OR REPLACE VIEW ap_pto_arten
336AS
337  SELECT DISTINCT art
338    FROM ap_pto;
339
340
341-- Umbruch im Label?
342-- z.B. "Schwimm-/nbecken"
343-- Sind 2 Buchstaben in Mapfile bei "WRAP" möglich?
344CREATE OR REPLACE VIEW texte_mit_umbruch
345AS
346 SELECT ogc_fid, schriftinhalt, art
347   FROM ap_pto
348  WHERE not schriftinhalt is null
349    AND schriftinhalt like '%/n%';
350
351-- ... schriftinhalt like '%/%';
352-- RLP: FlurstÌcks-Bruchnummer art='ZAE_NEN' als Schriftinhalt (2 FÀlle)
353
354
355
356CREATE OR REPLACE VIEW s_allgemeine_texte_arten
357AS
358 SELECT DISTINCT art
359   FROM s_allgemeine_texte;
360
361-- dies liefert die Werte:
362--  Bahnverkehr, BWF, FKT_LGT, Fliessgewaesser, FreierText, Gewanne, NAM, Platz,
363--  StehendesGewaesser, Strasse, urn:adv:fachdatenv, Weg, ZNM
364
365
366
367-- EXTENT fÃŒr Mapfile eines Mandenten ermitteln
368
369CREATE OR REPLACE VIEW flurstuecks_minmax AS
370 SELECT min(st_xmin(wkb_geometry)) AS r_min,
371        min(st_ymin(wkb_geometry)) AS h_min,
372        max(st_xmax(wkb_geometry)) AS r_max,
373        max(st_ymax(wkb_geometry)) AS h_max
374   FROM public.ax_flurstueck;
375
376COMMENT ON VIEW flurstuecks_minmax IS 'Maximale Ausdehnung von ax_flurstueck fuer EXTENT-Angabe im Mapfile';
377
378
379
380-- Nach Laden der Keytables:
381
382-- MAP ALT:
383-- DATA "wkb_geometry from (SELECT ogc_fid, gml_id, artderfestlegung, name, bezeichnung, stelle, wkb_geometry FROM ax_bauraumoderbodenordnungsrecht) as foo using unique ogc_fid using SRID=25832"
384
385CREATE OR REPLACE VIEW baurecht
386AS
387  SELECT r.ogc_fid,
388         r.wkb_geometry,
389         r.gml_id,
390         r.artderfestlegung as adfkey, -- Art der Festlegung - Key
391         r."name",                     -- Eigenname des Gebietes
392         r.stelle,                     -- Stelle Key
393         r.bezeichnung AS rechtbez,    -- Verfahrensnummer
394         a.bezeichner  AS adfbez,      -- Art der Festlegung - Bezeichnung
395         d.bezeichnung AS stellbez     -- Stelle Bezeichnung
396      -- , d.stellenart                -- weiter entschluesseln?
397    FROM ax_bauraumoderbodenordnungsrecht r
398    LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a
399      ON r.artderfestlegung = a.wert
400    LEFT JOIN ax_dienststelle d
401      ON r.land = d.land AND r.stelle = d.stelle
402 ;
403
404-- MAP NEU:
405-- DATA "wkb_geometry from (SELECT ogc_fid, gml_id, adfkey, name, stelle, rechtbez, adfbez, stellbez, wkb_geometry FROM baurecht) as foo using unique ogc_fid using SRID=25832" # gespeicherter View
406
407
408-- Man glaubt es kaum, aber im ALKIS haben Gemeinde und Gemarkung keinerlei Beziehung miteinander
409-- Nur durch Auswertung der FlurstÃŒcke kann man ermitteln, in welcher Gemeinde eine Gemarkung liegt.
410
411-- 2011-12-08 umbenannt
412
413CREATE OR REPLACE VIEW gemarkung_in_gemeinde
414AS
415  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
416  FROM            ax_flurstueck
417  ORDER BY        land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
418;
419
420COMMENT ON VIEW gemarkung_in_gemeinde IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.';
421
422
423-- Untersuchen, welche Geometrie-Typen vorkommen
424
425CREATE OR REPLACE VIEW arten_von_flurstuecksgeometrie
426AS
427 SELECT   count(gml_id) as anzahl,
428          st_geometrytype(wkb_geometry)
429 FROM     ax_flurstueck
430 GROUP BY st_geometrytype(wkb_geometry);
431
432
433-- A d r e s s e n
434
435-- Verschluesselte Lagebezeichnung (Strasse und Hausnummer) fuer eine Gemeinde
436-- Schluessel der Gemeinde nach Bedarf anpassen!
437
438--  FEHLER: Funktion to_char(character varying, unknown) existiert nicht
439
440
441CREATE VIEW  adressen_hausnummern
442AS
443    SELECT
444        s.bezeichnung AS strassenname,
445         g.bezeichnung AS gemeindename,
446         l.land,
447         l.regierungsbezirk,
448         l.kreis,
449         l.gemeinde,
450         l.lage        AS strassenschluessel,
451         l.hausnummer
452    FROM   ax_lagebezeichnungmithausnummer l 
453    JOIN   ax_gemeinde g
454      ON l.kreis=g.kreis
455     AND l.gemeinde=g.gemeinde
456    JOIN   ax_lagebezeichnungkatalogeintrag s
457      ON l.kreis=s.kreis
458     AND l.gemeinde=s.gemeinde
459     AND l.lage = s.lage        -- ab PostNAS 0.6
460    WHERE     l.gemeinde = 40;  -- "40" = Stadt Lage
461
462
463-- Zuordnung dieser Adressen zu Flurstuecken
464-- Schluessel der Gemeinde nach Bedarf anpassen!
465
466CREATE VIEW adressen_zum_flurstueck
467AS
468    SELECT
469           f.gemarkungsnummer,
470           f.flurnummer,
471           f.zaehler,
472           f.nenner,
473           g.bezeichnung AS gemeindename,
474           s.bezeichnung AS strassenname,
475           l.lage        AS strassenschluessel,
476           l.hausnummer
477      FROM   ax_flurstueck f
478      JOIN   alkis_beziehungen v
479        ON f.gml_id=v.beziehung_von
480      JOIN   ax_lagebezeichnungmithausnummer l 
481        ON l.gml_id=v.beziehung_zu
482      JOIN   ax_gemeinde g
483        ON l.kreis=g.kreis
484       AND l.gemeinde=g.gemeinde
485      JOIN   ax_lagebezeichnungkatalogeintrag s
486        ON l.kreis=s.kreis
487       AND l.gemeinde=s.gemeinde
488       AND l.lage = s.lage   -- ab PostNAS 0.6
489     WHERE v.beziehungsart='weistAuf'
490       AND l.gemeinde = 40  -- "40" = Stadt Lage
491     ORDER BY
492           f.gemarkungsnummer,
493           f.flurnummer,
494           f.zaehler,
495           f.nenner;
496
497
498-- FlurstÃŒcke eines EigentÃŒmers
499-- ----------------------------
500
501-- Dieser View liefert nur die (einfache) Buchungsart "GrundstÃŒck"
502-- Solche FÀlle wie "Erbbaurecht an GrundstÌck" oder "Wohnungs-/Teileigentum an aufgeteiltes GrundstÌck"
503-- oder "Miteigentum an aufteteiltes GrundstÃŒck" fehlen in deisere Auswertung.
504-- Dazu siehe: "rechte_eines_eigentuemers".
505
506-- Das Ergbenis ist gedacht fÃŒr den Export als CSV und Weiterverarbeitung mit einer Tabellenkalkulation
507-- oder einer einfachen Datenbank.
508
509-- Auch ein Export als Shape ist moeglich (dafuer: geom hinzugefuegt, Feldnamen gekuerzt)
510-- Kommando:
511--  pgsql2shp -h localhost -p 5432 -f "/data/.../alkis_fs_gemeinde.shp"  [db-name]  public.flurstuecke_eines_eigentuemers
512
513-- Übersicht der Tabellen:
514--
515-- Person <benennt< NamNum. >istBestandteilVon> Blatt <istBestandteilVon< Stelle >istGebucht> Flurstueck
516--                                              *-> Bezirk                *-> Buchungsart     *-> Gemarkung
517
518-- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx".
519
520CREATE VIEW flurstuecke_eines_eigentuemers
521AS
522   SELECT
523      k.bezeichnung                AS gemarkung,
524      k.gemarkungsnummer           AS gemkg_nr,
525      f.flurnummer                 AS flur,
526      f.zaehler                    AS fs_zaehler,
527      f.nenner                     AS fs_nenner,
528      f.amtlicheflaeche            AS flaeche,
529      f.wkb_geometry               AS geom,  -- fuer Export als Shape
530   -- g.bezirk,
531      b.bezeichnung                AS bezirkname,
532      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
533      g.blattart,
534      s.laufendenummer             AS bvnr,
535      art.bezeichner               AS buchgsart,
536   -- s.zaehler || '/' || s.nenner AS buchg_anteil,
537      n.laufendenummernachdin1421  AS name_num,
538   -- n.zaehler || '/' || n.nenner AS nam_anteil,
539      p.nachnameoderfirma          AS nachname --,
540   -- p.vorname
541   FROM       ax_person              p
542        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id
543        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id
544        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von
545        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id
546        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk
547        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id
548        JOIN  ax_buchungsstelle      s    ON s.gml_id = bgs.beziehung_von
549        JOIN  ax_buchungsstelle_buchungsart art ON s.buchungsart = art.wert
550        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = s.gml_id
551        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von
552        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer
553   WHERE p.nachnameoderfirma LIKE 'Gemeinde %'   -- ** Bei Bedarf anpassen!
554     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person
555     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch
556     AND bgs.beziehungsart = 'istBestandteilVon' -- Buchungs-Stelle >> Grundbuch
557     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> Buchungs-Stelle
558   ORDER BY   
559         k.bezeichnung,
560         f.flurnummer,
561         f.zaehler,
562         f.nenner,
563         g.bezirk,
564         g.buchungsblattnummermitbuchstabenerweiterung,
565         s.laufendenummer
566;
567
568
569-- Rechte eines EigentÃŒmers
570-- ------------------------
571
572-- Dieser View sucht speziell die FÀlle wo eine Buchungsstelle ein Recht "an" einer anderen Buchungsstelle hat.
573--  - "Erbbaurecht *an* GrundstÃŒck"
574--  - "Wohnungs-/Teileigentum *an* Aufgeteiltes GrundstÃŒck"
575--  - "Miteigentum *an* Aufteteiltes GrundstÃŒck"
576-- Suchkriterium ist der Name des EigentÃŒmers auf dem "herrschenden" Grundbuch, also dem Besitzer des Rechtes.
577
578-- Diese FÀlle fehlen im View "flurstuecke_eines_eigentuemers".
579
580-- Übersicht der Tabellen:
581--
582-- Person <benennt< NamNum. >istBestandteilVon> Blatt <istBestandteilVon< Stelle-h >an> Stelle-d >istGebucht> Flurstueck
583--
584
585-- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx".
586
587
588CREATE VIEW rechte_eines_eigentuemers
589AS
590   SELECT
591      k.bezeichnung                AS gemarkung,
592      k.gemarkungsnummer           AS gemkg_nr,
593      f.flurnummer                 AS flur,
594      f.zaehler                    AS fs_zaehler,
595      f.nenner                     AS fs_nenner,
596      f.amtlicheflaeche            AS flaeche,
597      f.wkb_geometry               AS geom,  -- fuer Export als Shape
598   -- g.bezirk,
599      b.bezeichnung                AS bezirkname,
600      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
601   -- g.blattart,
602      sh.laufendenummer            AS bvnr_herr,
603      sh.zaehler || '/' || sh.nenner AS buchg_anteil_herr,
604      arth.bezeichner              AS buchgsa_herr,
605      bss.beziehungsart            AS bez_art,
606      artd.bezeichner              AS buchgsa_dien,
607      sd.laufendenummer            AS bvnr_dien,
608   -- sd.zaehler || '/' || sd.nenner AS buchg_anteil_dien,
609      n.laufendenummernachdin1421  AS name_num,
610   -- n.zaehler || '/' || n.nenner AS nam_anteil,
611      p.nachnameoderfirma          AS nachname --, 
612   -- p.vorname
613   FROM       ax_person              p
614        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id
615        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id
616        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von
617        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id
618        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk
619        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id
620        JOIN  ax_buchungsstelle      sh   ON sh.gml_id = bgs.beziehung_von  -- herrschende Buchung
621        JOIN  ax_buchungsstelle_buchungsart arth ON sh.buchungsart = arth.wert
622        JOIN  alkis_beziehungen      bss  ON sh.gml_id = bss.beziehung_von
623        JOIN  ax_buchungsstelle      sd   ON sd.gml_id = bss.beziehung_zu   -- dienende Buchung
624        JOIN  ax_buchungsstelle_buchungsart artd ON sd.buchungsart = artd.wert
625        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = sd.gml_id
626        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von
627        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer
628   WHERE p.nachnameoderfirma LIKE 'Stadt %'   -- ** Bei Bedarf anpassen!
629     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person
630     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch
631     AND bgs.beziehungsart = 'istBestandteilVon' -- B-Stelle herr   >> Grundbuch
632     AND bss.beziehungsart in ('an','zu')        -- B-Stelle herr.  >> B-Stelle dien.
633     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> B-Stelle dien
634   ORDER BY   
635         k.bezeichnung,
636         f.flurnummer,
637         f.zaehler,
638         f.nenner,
639         g.bezirk,
640         g.buchungsblattnummermitbuchstabenerweiterung,
641         sh.laufendenummer
642;
643
644-- END --
645
Note: See TracBrowser for help on using the repository browser.