source: trunk/data/konvert/postnas_0.6/sichten.sql @ 153

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

Sichten erweitert

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