source: trunk/data/konvert/postnas_0.6/gemeinden_laden.sql @ 163

Revision 140, 3.1 KB checked in by frank.jaeger, 10 years ago (diff)

Filter auf Gemeinde bei Navigation bei Suche nach Eigentümer. Dazu Hilfstabelle aufbauen.

Line 
1
2-- ALKIS PostNAS 0.6
3
4-- =======================================================
5-- Tabelle fuer die Zuordnung vom Gemarkungen zu Gemeinden
6-- =======================================================
7
8-- Für die Regelung der Zugriffsberechtigung einer Gemeindeverwaltung auf die
9-- Flurstücke in ihrem Gebiet braucht man die Information, in welcher Gemeinde eine Gemarkung liegt.
10-- 'ax_gemeinde' und 'ax_gemarkung' haben aber im ALKIS keinerlei Beziehung zueinander - kaum zu glauben!
11-- Nur über die Auswertung der Flurstücke kann man die Zuordnung ermitteln.
12-- Da nicht ständig mit 'SELECT DISTINCT' sämtliche Flurstücke durchsucht werden können,
13-- muss diese Information als (redundante) Tabelle nach dem Laden zwischengespeichert werden.
14
15
16-- Teil 2: Laden der Tabellen
17
18-- Stand
19
20--  2011-07-25 PostNAS 06, Umbenennung
21--  2011-12-08 Person -> Gemeinde
22
23
24SET client_encoding = 'UTF-8';
25
26-- Alles auf Anfang!
27
28 DELETE FROM gemeinde_gemarkung;
29
30
31-- Vorkommende Paarungen in Flurstücke
32INSERT INTO gemeinde_gemarkung
33  (               land, regierungsbezirk, kreis, gemeinde, gemarkung       )
34  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
35  FROM            ax_flurstueck
36  ORDER BY        land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
37;
38
39
40-- Namen der Gemeinde dazu als Optimierung bei der Auskunft
41UPDATE gemeinde_gemarkung a
42   SET gemeindename =
43   ( SELECT b.bezeichnung
44     FROM    ax_gemeinde b
45     WHERE a.land=b.land
46       AND a.regierungsbezirk=b.regierungsbezirk
47       AND a.kreis=b.kreis
48       AND a.gemeinde=b.gemeinde
49   );
50 
51 
52-- Namen der Gemarkung dazu als Optimierung bei der Auskunft
53UPDATE gemeinde_gemarkung a
54   SET gemarkungsname =
55   ( SELECT b.bezeichnung
56     FROM    ax_gemarkung b
57     WHERE a.land=b.land
58       AND a.gemarkung=b.gemarkungsnummer
59   );
60
61
62
63-- =======================================================
64-- Tabelle fuer die Zuordnung vom Eigentümern zu Gemeinden
65-- =======================================================
66
67
68-- erst mal sauber machen
69DELETE FROM gemeinde_person;
70
71-- alle direkten Buchungen mit View ermitteln und in Tabelle speichern
72-- Für eine Stadt: ca. 20 Sekunden
73INSERT INTO  gemeinde_person
74       (land, regierungsbezirk, kreis, gemeinde, person, buchtyp)
75 SELECT land, regierungsbezirk, kreis, gemeinde, person, 1
76   FROM gemeinde_person_typ1;
77
78
79-- noch die komplexeren Buchungen ergänzen (Recht an ..)
80-- Mit View ermitteln und in Tabelle speichern
81-- Für eine Stadt: ca. 10 Sekunden
82INSERT INTO  gemeinde_person
83       (  land,   regierungsbezirk,   kreis,   gemeinde,   person,  buchtyp)
84 SELECT q.land, q.regierungsbezirk, q.kreis, q.gemeinde, q.person,  2
85   FROM gemeinde_person_typ2 q   -- Quelle
86   LEFT JOIN gemeinde_person z   -- Ziel
87     ON q.person   = z.person    -- Aber nur, wenn dieser Fall im Ziel
88    AND q.land     = z.land
89    AND q.regierungsbezirk = z.regierungsbezirk
90    AND q.kreis    = z.kreis
91    AND q.gemeinde = z.gemeinde
92  WHERE z.gemeinde is Null;      -- ..  noch nicht vorhanden ist
93
94
95-- ENDE --
Note: See TracBrowser for help on using the repository browser.