source: trunk/data/konvert/postnas_0.5/alkis_gemeinden_laden.sql @ 108

Revision 62, 1.8 KB checked in by astrid.emde, 13 years ago (diff)

Distinct auf gemeinde und gemarkung

Line 
1
2-- ALKIS PostNAS 0.5
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 Tabelle
17
18-- Stand
19--  2010-11-25 
20
21
22SET client_encoding = 'UTF-8';
23
24-- Alles auf Anfang!
25
26 DELETE FROM gemeinde_gemarkung;
27
28
29-- Vorkommende Paarungen in Flurstücke
30INSERT INTO gemeinde_gemarkung
31  (               land, regierungsbezirk, kreis, gemeinde, gemarkung       )
32  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
33  FROM            ax_flurstueck
34  ORDER BY        land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
35;
36
37
38-- Namen der Gemeinde dazu als Optimierung bei der Auskunft
39UPDATE gemeinde_gemarkung a
40   SET gemeindename =
41   ( SELECT DISTINCT b.bezeichnung
42     FROM    ax_gemeinde b
43     WHERE a.land=b.land
44       AND a.regierungsbezirk=b.regierungsbezirk
45       AND a.kreis=b.kreis
46       AND a.gemeinde=b.gemeinde
47   );
48 
49 
50-- Namen der Gemarkung dazu als Optimierung bei der Auskunft
51UPDATE gemeinde_gemarkung a
52   SET gemarkungsname =
53   ( SELECT DISTINCT b.bezeichnung
54     FROM ax_gemarkung b
55     WHERE a.land=b.land
56       AND a.gemarkung=b.gemarkungsnummer
57   );
58
59
60-- ENDE --
Note: See TracBrowser for help on using the repository browser.