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 |
|
---|
24 | SET client_encoding = 'UTF-8';
|
---|
25 |
|
---|
26 | -- Alles auf Anfang!
|
---|
27 |
|
---|
28 | DELETE FROM gemeinde_gemarkung;
|
---|
29 |
|
---|
30 |
|
---|
31 | -- Vorkommende Paarungen in Flurstücke
|
---|
32 | INSERT 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
|
---|
41 | UPDATE 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
|
---|
53 | UPDATE 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
|
---|
69 | DELETE FROM gemeinde_person;
|
---|
70 |
|
---|
71 | -- alle direkten Buchungen mit View ermitteln und in Tabelle speichern
|
---|
72 | -- Für eine Stadt: ca. 20 Sekunden
|
---|
73 | INSERT 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
|
---|
82 | INSERT 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 -- |
---|