Changeset 330 for trunk/import/sichten.sql
- Timestamp:
- 09/10/14 12:08:18 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/import/sichten.sql
r328 r330 3 3 -- ===== 4 4 5 -- PostNAS 0.8 6 5 7 -- ----------------------------------------- 6 8 -- Sichten fÃŒr Fehlersuche und Daten-Analyse … … 9 11 -- Dieses SQL braucht nur bei Bedarf in einer PostNAS-DB verarbeitet werden. 10 12 -- Es werden zusÀtzliche Views eingerichtet, die nur bei Fehlersuche und Analyse (vom Entwickler) benötigt werden. 11 12 -- PostNAS 0.713 13 14 14 -- 2012-04-17 flstnr_ohne_position … … 30 30 -- 2014-01-31 Kommentar 31 31 -- 2014-02-06 nachmigration_aehnliche_anschriften 32 -- 2014-09-02 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen. 33 -- Relationen nun direkt ÃŒber neue Spalten in den Objekttabellen. 32 34 33 35 -- Bausteine fÃŒr andere Views: … … 47 49 48 50 -- DROP VIEW public.doppelverbindung; 51 49 52 CREATE OR REPLACE VIEW public.doppelverbindung 50 53 AS 51 SELECT v1.beziehung_von AS fsgml, -- gml_id auf FlurstÃŒck - Seite52 v1.beziehung_zu AS bsgml, -- gml_id auf Buchungs - Seite53 --'direkt' AS fall,54 0 AS ba_dien55 FROM a lkis_beziehungen v156 WHERE v1.beziehungsart = 'istGebucht' -- FS --> Buchung54 -- FS >istGebucht> Buchungstelle 55 SELECT f1.gml_id AS fsgml, -- gml_id FlurstÃŒck 56 b1.gml_id AS bsgml, -- gml_id Buchungs 57 0 AS ba_dien 58 FROM ax_flurstueck f1 59 JOIN ax_buchungsstelle b1 ON f1.istgebucht = b1.gml_id 57 60 UNION 58 -- Buchungstelle >an> Buchungstelle >istBestandteilVon> BLATT 59 SELECT v2.beziehung_von AS fsgml, -- gml_id auf FlurstÃŒck - Seite 60 an.beziehung_von AS bsgml, -- gml_id auf Buchungs - Seite (herrschendes GB) 61 --'Recht an' AS fall, 62 dien.buchungsart AS ba_dien -- Ein Feld aus der Zwischen-Buchung zur Fall-Unterscheidung 63 FROM alkis_beziehungen v2 64 JOIN ax_buchungsstelle dien 65 ON v2.beziehung_zu = dien.gml_id 66 JOIN alkis_beziehungen an 67 ON dien.gml_id = an.beziehung_zu 68 WHERE v2.beziehungsart = 'istGebucht' -- FS --> Buchung 69 AND an.beziehungsart = 'an'; 61 -- FS >istGebucht> Buchungstelle <an< Buchungstelle 62 SELECT f2.gml_id AS fsgml, -- gml_id FlurstÃŒck 63 b2.gml_id AS bsgml, -- gml_id Buchung - (herrschendes GB) 64 dien.buchungsart AS ba_dien -- Ein Feld aus der Zwischen-Buchung zur Fall-Unterscheidung 65 FROM ax_flurstueck f2 66 JOIN ax_buchungsstelle dien ON f2.istGebucht = dien.gml_id 67 JOIN ax_buchungsstelle b2 ON dien.gml_id = ANY (b2.an) 68 WHERE dien.endet IS NULL; -- FÃŒr das zusÀtzliche Verbindungselement die Historie hier ausschlieÃen, 69 -- FÃŒr andere Tabellen muss dies in dem View erfolgen, der dies verwendet. 70 70 71 71 COMMENT ON VIEW public.doppelverbindung … … 80 80 -- Dies kann als "MittelstÃŒck" in den anderen Views eingefÃŒgt werden. 81 81 82 -- FlurstÃŒck >weistAuf> ax_lagebezeichnungmithausnummer <JOIN> ax_lagebezeichnungkatalogeintrag83 -- FlurstÃŒck >zeigtAuf> ax_lagebezeichnungohnehausnummer <JOIN> ax_lagebezeichnungkatalogeintrag84 85 82 -- DROP VIEW public.flst_an_strasse; 83 86 84 CREATE OR REPLACE VIEW public.flst_an_strasse 87 85 AS 88 SELECT vm.beziehung_von AS fsgml, -- Join auf "gml_id" aus "ax_flurstÃŒck" 86 -- FlurstÃŒck >weistAuf> ax_lagebezeichnungMIThausnummer <JOIN> ax_lagebezeichnungkatalogeintrag 87 SELECT fm.gml_id AS fsgml, 89 88 sm.gml_id AS stgml, -- Filter: gml_id der StraÃe 90 -- sm.gemeinde, sm.lage, -- Gemeinde- und StraÃenschluessel als Filter?91 89 'm' AS fall -- SÀtze unterschieden: Mit HsNr 92 FROM a lkis_beziehungen vm -- VerbindungMit90 FROM ax_flurstueck fm -- FlurstÃŒck Mit 93 91 JOIN ax_lagebezeichnungmithausnummer lm -- Lage MIT 94 ON lm.gml_id=vm.beziehung_zu 95 AND vm.beziehungsart= 'weistAuf' 96 JOIN ax_lagebezeichnungkatalogeintrag sm -- Ausnahmsweise mal direkt und nicht ÃŒber die "alkis_beziehungen" 97 ON lm.land=sm.land 98 AND lm.regierungsbezirk=sm.regierungsbezirk 99 AND lm.kreis=sm.kreis 100 AND lm.gemeinde=sm.gemeinde 101 AND lm.lage=sm.lage 92 ON lm.gml_id = ANY (fm.weistauf) 93 JOIN ax_lagebezeichnungkatalogeintrag sm 94 ON lm.land=sm.land AND lm.regierungsbezirk=sm.regierungsbezirk AND lm.kreis=sm.kreis AND lm.gemeinde=sm.gemeinde AND lm.lage=sm.lage 95 WHERE lm.endet IS NULL -- Verbinder nicht Historisch 102 96 UNION 103 SELECT vo.beziehung_von AS fsgml, -- Join auf gml_id aus ax_flurstÃŒck 97 -- FlurstÃŒck >zeigtAuf> ax_lagebezeichnungOHNEhausnummer <JOIN> ax_lagebezeichnungkatalogeintrag 98 SELECT fo.gml_id AS fsgml, 104 99 so.gml_id AS stgml, -- Filter: gml_id der StraÃe 105 -- so.gemeinde, so.lage -- Gemeinde- und StraÃenschluessel als Filter?106 100 'o' AS fall -- SÀtze unterschieden: Ohne HsNr 107 FROM a lkis_beziehungen vo -- VerbindungOHNE101 FROM ax_flurstueck fo -- FlurstÃŒck OHNE 108 102 JOIN ax_lagebezeichnungohnehausnummer lo -- Lage OHNE 109 ON lo.gml_id=vo.beziehung_zu 110 AND vo.beziehungsart= 'zeigtAuf' 103 ON lo.gml_id = ANY (fo.zeigtauf) 111 104 JOIN ax_lagebezeichnungkatalogeintrag so -- StraÃe OHNE 112 ON lo.land=so.land 113 AND lo.regierungsbezirk=so.regierungsbezirk 114 AND lo.kreis=so.kreis 115 AND lo.gemeinde=so.gemeinde 116 AND lo.lage=so.lage; 105 ON lo.land=so.land AND lo.regierungsbezirk=so.regierungsbezirk AND lo.kreis=so.kreis AND lo.gemeinde=so.gemeinde AND lo.lage=so.lage 106 WHERE lo.endet IS NULL; -- Verbinder nicht Historisch 117 107 118 108 COMMENT ON VIEW public.flst_an_strasse … … 143 133 -- Anwendungs-Beispiel: Abrechnung von AnliegerbeitrÀgen. 144 134 145 -- 2014-01-21: "Rechtsgemeinschaft" in den Datensatz aller anderen Namen146 135 -- DROP VIEW exp_csv; 136 147 137 CREATE OR REPLACE VIEW exp_csv 148 138 AS … … 164 154 -- Buchungsstelle (GrundstÃŒck) 165 155 s.laufendenummer AS bu_lfd, -- BVNR 166 --s.zaehler, s.nenner,-- Anteil des GB am FS, einzelne Felder156 --s.zaehler, s.nenner, -- Anteil des GB am FS, einzelne Felder 167 157 '=' || s.zaehler || '/' || s.nenner AS bu_ant, -- als Excel-Formel (nur bei Wohnungsgrundbuch JOIN ÃŒber 'Recht an') 168 158 s.buchungsart, -- verschlÃŒsselt … … 195 185 JOIN doppelverbindung d -- beide FÀlle ÃŒber Union-View: direkt und ÃŒber Recht von Buchung an Buchung 196 186 ON d.fsgml = f.gml_id 197 198 187 JOIN ax_gemarkung g -- entschlÃŒsseln 199 188 ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 200 201 189 JOIN ax_buchungsstelle s -- Buchungs-Stelle 202 190 ON d.bsgml = s.gml_id 203 191 JOIN ax_buchungsstelle_buchungsart b -- EnstschlÃŒsselung der Buchungsart 204 192 ON s.buchungsart = b.wert 205 206 JOIN alkis_beziehungen v3 -- Buchung --> Grundbuchblatt 207 ON s.gml_id = v3.beziehung_von AND v3.beziehungsart = 'istBestandteilVon' 208 JOIN ax_buchungsblatt gb 209 ON v3.beziehung_zu = gb.gml_id 210 193 JOIN ax_buchungsblatt gb -- Buchung >istBestandteilVon> Grundbuchblatt 194 ON gb.gml_id = s.istbestandteilvon 211 195 JOIN ax_buchungsblattbezirk z 212 196 ON gb.land=z.land AND gb.bezirk=z.bezirk 213 214 JOIN alkis_beziehungen v4 -- Blatt --> NamNum 215 ON v4.beziehung_zu = gb.gml_id AND v4.beziehungsart = 'istBestandteilVon' 216 JOIN ax_namensnummer nn 217 ON v4.beziehung_von = nn.gml_id 218 219 JOIN alkis_beziehungen v5 -- NamNum --> Person 220 -- 2014-01-20: Mit LEFT ab hier werden auch NumNum-Zeilen mit "Beschreibung der Rechtsgemeinschaft" geliefert (ohne Person) 221 ON v5.beziehung_von = nn.gml_id AND v5.beziehungsart = 'benennt' 222 JOIN ax_person p 223 ON v5.beziehung_zu = p.gml_id 224 225 LEFT JOIN alkis_beziehungen v6 -- Person --> Anschrift 226 ON v6.beziehung_von = p.gml_id AND v6.beziehungsart = 'hat' 197 JOIN ax_namensnummer nn -- Blatt <istBestandteilVon< NamNum 198 ON gb.gml_id = nn.istbestandteilvon 199 JOIN ax_person p -- NamNum >benennt> Person 200 ON p.gml_id = nn.benennt 227 201 LEFT JOIN ax_anschrift a 228 ON v6.beziehung_zu = a.gml_id 229 230 -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery: 231 202 ON a.gml_id = ANY (p.hat) 203 204 -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery in Spalten packen: 232 205 -- Noch mal "GB -> NamNum", aber dieses Mal fÃŒr "Rechtsgemeinschaft". 233 206 -- Kommt max. 1 mal je GB vor und hat keine Relation auf Person. 234 207 LEFT JOIN 235 ( SELECT v7.beziehung_zu, 236 rg.artderrechtsgemeinschaft, 237 rg.beschriebderrechtsgemeinschaft 238 FROM ax_namensnummer rg 239 JOIN alkis_beziehungen v7 -- Blatt --> NamNum (Rechtsgemeinschaft) 240 ON v7.beziehung_von = rg.gml_id 241 WHERE v7.beziehungsart = 'istBestandteilVon' 242 AND NOT rg.artderrechtsgemeinschaft IS NULL 243 ) AS rg -- Rechtsgemeinschaft 244 ON rg.beziehung_zu = gb.gml_id -- zum GB 208 ( SELECT gr.gml_id, r.artderrechtsgemeinschaft, r.beschriebderrechtsgemeinschaft 209 FROM ax_namensnummer r 210 JOIN ax_buchungsblatt gr 211 ON r.istbestandteilvon = gr.gml_id -- Blatt <istBestandteilVon< NamNum (Rechtsgemeinschaft) 212 WHERE NOT r.artderrechtsgemeinschaft IS NULL ) AS rg -- Rechtsgemeinschaft 213 ON rg.gml_id = gb.gml_id -- zum GB 214 215 WHERE f.endet IS NULL AND s.endet IS NULL and gb.endet IS NULL and nn.endet IS NULL AND p.endet IS NULL 245 216 246 217 ORDER BY f.flurstueckskennzeichen, … … 250 221 COMMENT ON VIEW exp_csv 251 222 IS 'View fÃŒr einen CSV-Export aus der Buchauskunft mit alkisexport.php. Generelle Struktur. FÃŒr eine bestimmte gml_id noch den Filter setzen.'; 252 253 GRANT SELECT ON TABLE exp_csv TO mb27; -- User fÃŒr Auskunfts-Programme254 --GRANT SELECT ON TABLE exp_csv TO alkisbuch; -- User fÃŒr Auskunfts-Programme RLP-Demo255 223 256 224 … … 259 227 -- Der Filter "WHERE stgml= " auf die "gml_id" von "ax_lagebezeichnungkatalogeintrag" sollte gesetzt werden 260 228 -- um alle FlurstÃŒcke zu bekommen, die an einer StraÃe liegen. 229 261 230 -- DROP VIEW exp_csv_str; 231 262 232 CREATE OR REPLACE VIEW exp_csv_str 263 233 AS 264 234 SELECT 265 l.stgml, -- Filter: StraÃen-GML-ID 235 l.stgml, -- Filter: gml_id aus "ax_lagebezeichnungkatalogeintrag" 236 -- UNTERSCHIED zu exp_csv) 266 237 267 238 -- FlurstÃŒck … … 281 252 -- Buchungsstelle (GrundstÃŒck) 282 253 s.laufendenummer AS bu_lfd, -- BVNR 283 --s.zaehler, s.nenner,-- Anteil des GB am FS, einzelne Felder254 --s.zaehler, s.nenner, -- Anteil des GB am FS, einzelne Felder 284 255 '=' || s.zaehler || '/' || s.nenner AS bu_ant, -- als Excel-Formel (nur bei Wohnungsgrundbuch JOIN ÃŒber 'Recht an') 285 256 s.buchungsart, -- verschlÃŒsselt … … 310 281 311 282 FROM ax_flurstueck f -- FlurstÃŒck 312 313 283 JOIN flst_an_strasse l -- Lage (hier zusÀtzlicher JOIN gegenÃŒber Version "exp_csv") 314 284 ON l.fsgml = f.gml_id 315 316 285 JOIN doppelverbindung d -- beide FÀlle ÃŒber Union-View: direkt und ÃŒber Recht von Buchung an Buchung 317 286 ON d.fsgml = f.gml_id 318 319 287 JOIN ax_gemarkung g -- entschlÃŒsseln 320 288 ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 321 322 289 JOIN ax_buchungsstelle s -- Buchungs-Stelle 323 290 ON d.bsgml = s.gml_id 324 291 JOIN ax_buchungsstelle_buchungsart b -- EnstschlÃŒsselung der Buchungsart 325 292 ON s.buchungsart = b.wert 326 327 JOIN alkis_beziehungen v3 -- Buchung --> Grundbuchblatt 328 ON s.gml_id = v3.beziehung_von AND v3.beziehungsart = 'istBestandteilVon' 329 JOIN ax_buchungsblatt gb 330 ON v3.beziehung_zu = gb.gml_id 331 293 JOIN ax_buchungsblatt gb -- Buchung >istBestandteilVon> Grundbuchblatt 294 ON gb.gml_id = s.istbestandteilvon 332 295 JOIN ax_buchungsblattbezirk z 333 296 ON gb.land=z.land AND gb.bezirk=z.bezirk 334 335 JOIN alkis_beziehungen v4 -- Blatt --> NamNum 336 ON v4.beziehung_zu = gb.gml_id AND v4.beziehungsart = 'istBestandteilVon' 337 JOIN ax_namensnummer nn 338 ON v4.beziehung_von = nn.gml_id 339 340 JOIN alkis_beziehungen v5 -- NamNum --> Person 341 -- 2014-01-20: Mit LEFT ab hier werden auch NumNum-Zeilen mit "Beschreibung der Rechtsgemeinschaft" geliefert (ohne Person) 342 ON v5.beziehung_von = nn.gml_id AND v5.beziehungsart = 'benennt' 343 JOIN ax_person p 344 ON v5.beziehung_zu = p.gml_id 345 346 LEFT JOIN alkis_beziehungen v6 -- Person --> Anschrift 347 ON v6.beziehung_von = p.gml_id AND v6.beziehungsart = 'hat' 297 JOIN ax_namensnummer nn -- Blatt <istBestandteilVon< NamNum 298 ON gb.gml_id = nn.istbestandteilvon 299 JOIN ax_person p -- NamNum >benennt> Person 300 ON p.gml_id = nn.benennt 348 301 LEFT JOIN ax_anschrift a 349 ON v6.beziehung_zu = a.gml_id 350 351 -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery: 352 302 ON a.gml_id = ANY (p.hat) 303 304 -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery in Spalten packen: 353 305 -- Noch mal "GB -> NamNum", aber dieses Mal fÃŒr "Rechtsgemeinschaft". 354 306 -- Kommt max. 1 mal je GB vor und hat keine Relation auf Person. 355 307 LEFT JOIN 356 ( SELECT v7.beziehung_zu, 357 rg.artderrechtsgemeinschaft, 358 rg.beschriebderrechtsgemeinschaft 359 FROM ax_namensnummer rg 360 JOIN alkis_beziehungen v7 -- Blatt --> NamNum (Rechtsgemeinschaft) 361 ON v7.beziehung_von = rg.gml_id 362 WHERE v7.beziehungsart = 'istBestandteilVon' 363 AND NOT rg.artderrechtsgemeinschaft IS NULL 364 ) AS rg -- Rechtsgemeinschaft 365 ON rg.beziehung_zu = gb.gml_id -- zum GB 308 ( SELECT gr.gml_id, r.artderrechtsgemeinschaft, r.beschriebderrechtsgemeinschaft 309 FROM ax_namensnummer r 310 JOIN ax_buchungsblatt gr 311 ON r.istbestandteilvon = gr.gml_id -- Blatt <istBestandteilVon< NamNum (Rechtsgemeinschaft) 312 WHERE NOT r.artderrechtsgemeinschaft IS NULL ) AS rg -- Rechtsgemeinschaft 313 ON rg.gml_id = gb.gml_id -- zum GB 314 315 WHERE f.endet IS NULL AND s.endet IS NULL and gb.endet IS NULL and nn.endet IS NULL AND p.endet IS NULL 366 316 367 317 ORDER BY f.flurstueckskennzeichen, … … 372 322 IS 'View fÃŒr einen CSV-Export aus der Buchauskunft mit alkisexport.php. Liefert nur FlurstÃŒcke, die eine Lagebezeichnung MIT/OHNE Hausnummer haben. Dazu noch den Filter auf GML-ID der StraÃentabelle setzen.'; 373 323 374 GRANT SELECT ON TABLE exp_csv_str TO mb27; -- User fÃŒr Auskunfts-Programme 375 --GRANT SELECT ON TABLE exp_csv_str TO alkisbuch; -- User fÃŒr Auskunfts-Programme RLP-Demo 376 377 378 -- Test-Ausgabe: 379 -- SELECT * FROM exp_csv_str WHERE stgml='DENW18AL000004Fl' LIMIT 40; 324 -- Test: SELECT * FROM exp_csv_str WHERE stgml = 'DENW15AL100000Q8'; -- VeilchenstraÃe in Löhne 380 325 381 326 382 327 -- Analyse: Kann es mehr als 1 "Rechtsgemeinschaft" zu einem GB-Blatt geben? 383 328 -- (Diese Frage stellte sich beim Design des View "exp_csv".) 384 -- Schritt 1: alle vorhandenen 329 330 -- In umgekehrter Reihenfolge löschen (AbhÀngigkeiten). 331 DROP VIEW IF EXISTS rechtsgemeinschaften_mehrfachzeilen; 332 DROP VIEW IF EXISTS rechtsgemeinschaften_zaehlen; 333 DROP VIEW IF EXISTS rechtsgemeinschaften_zum_grundbuch; 334 335 -- Schritt 1: alle vorhandenen Rechtsgemeinschaften 336 385 337 CREATE OR REPLACE VIEW rechtsgemeinschaften_zum_grundbuch 386 338 AS 387 339 SELECT 388 gb.gml_id ,340 gb.gml_id AS gb_gml, 389 341 gb.bezirk, 390 342 gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 391 nn.artderrechtsgemeinschaft, 343 nn.gml_id AS nn_gml, nn.beginnt, nn.laufendenummernachdin1421, 344 nn.artderrechtsgemeinschaft AS adr, 392 345 nn.beschriebderrechtsgemeinschaft 393 FROM ax_buchungsblatt gb 394 JOIN alkis_beziehungen v 395 ON v.beziehung_zu = gb.gml_id AND v.beziehungsart = 'istBestandteilVon' 396 JOIN ax_namensnummer nn 397 ON v.beziehung_von = nn.gml_id 346 FROM ax_buchungsblatt gb 347 JOIN ax_namensnummer nn ON gb.gml_id = nn.istbestandteilvon 398 348 WHERE NOT nn.artderrechtsgemeinschaft IS NULL 399 ORDER BY gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung,400 349 AND gb.endet IS NULL AND nn.endet IS NULL -- Historie weglassen 350 ORDER BY gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, nn.laufendenummernachdin1421; 401 351 402 352 COMMENT ON VIEW rechtsgemeinschaften_zum_grundbuch … … 404 354 405 355 -- Schritt 2: Wo gibt es mehrere zu einem GB-Blatt 356 406 357 CREATE OR REPLACE VIEW rechtsgemeinschaften_zaehlen 407 358 AS 408 SELECT g ml_id, bezirk, gb_blatt, count(artderrechtsgemeinschaft) AS anzahl359 SELECT gb_gml, bezirk, gb_blatt, count(adr) AS anzahl 409 360 FROM rechtsgemeinschaften_zum_grundbuch 410 GROUP BY g ml_id, bezirk, gb_blatt411 HAVING count(a rtderrechtsgemeinschaft) > 1361 GROUP BY gb_gml, bezirk, gb_blatt 362 HAVING count(adr) > 1 412 363 ORDER BY bezirk, gb_blatt; 413 364 414 365 COMMENT ON VIEW rechtsgemeinschaften_zaehlen 415 IS 'Rechtsgemeinschaften zum Grundbuchblatt z aehlen.Anzeigen, wenn es mehrere gibt.';416 -- Ja, kann es geben366 IS 'Rechtsgemeinschaften zum Grundbuchblatt zÀhlen. Nur Anzeigen, wenn es mehrere gibt.'; 367 -- Ergebnis: Ja, kann es geben 417 368 418 369 -- Schritt 3: alle vorhandenen Zeilen anzeigen zu den GB-BlÀttern, bei denen es mehrere gibt. … … 421 372 SELECT * 422 373 FROM rechtsgemeinschaften_zum_grundbuch 423 WHERE g ml_id IN (SELECT gml_idFROM rechtsgemeinschaften_zaehlen);374 WHERE gb_gml IN (SELECT gb_gml FROM rechtsgemeinschaften_zaehlen); 424 375 425 376 COMMENT ON VIEW rechtsgemeinschaften_mehrfachzeilen 426 377 IS 'GrundbuchblÀtter mit mehr als einer Zeile Rechtsgemeinschaft.'; 378 427 379 -- Fazit: 428 380 -- Man findet einige wenige identische oder Àhnlich aussehende Zeilen zu einem Grundbuch. 429 381 -- Das sieht also eher nach einem PostNAS-FortfÃŒhrungsproblem aus, als nach unabhÀngigen Zeilen. 430 382 -- Wurde hier eine Relation nicht sauber gelöscht? 431 432 383 433 384 -- Welche Karten-Typen ? … … 437 388 FROM ap_pto p 438 389 WHERE p.art = 'HNR'; 390 439 391 COMMENT ON VIEW kartentypen_der_texte_fuer_hnr 440 392 IS 'Datenanalyse: Kartentypen in Tabelle ap_pto fÃŒr Hausnummern.'; … … 460 412 AND p.endet IS NULL 461 413 AND p.art IN ('AOG_AUG','PNR'); 414 462 415 COMMENT ON VIEW ap_pto_muell 463 416 IS 'Datenanalyse: Beschriftungen aus "ap_pto", die NICHT dargestellt werden sollen.'; … … 475 428 -- fÃŒr die FlurstÃŒcke, die ohne eine manuelle Position kommen. 476 429 477 -- Diese FÀlle identifizieren 478 CREATE OR REPLACE VIEW flstnr_ohne_position 430 -- Diese FÀlle identifizieren und unterscheiden: 431 432 CREATE OR REPLACE VIEW flstnr_mit_manueller_position 479 433 AS 480 434 SELECT f.gml_id, 481 435 f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS such -- Suchstring fÃŒr ALKIS-Navigation nach FS-Kennzeichen 482 FROM ax_flurstueck f 483 LEFT JOIN alkis_beziehungen v ON v.beziehung_zu = f.gml_id 484 --LEFT JOIN ap_pto p ON p.gml_id = v.beziehung_von 485 WHERE v.beziehungsart is NULL 486 AND f.endet IS NULL 487 --ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler 488 ; 489 COMMENT ON VIEW flstnr_ohne_position IS 'Sicht fÃŒr Datenanalyse: FlurstÃŒcke ohne manuell gesetzte Position fÃŒr die PrÀsentation der FS-Nr'; 436 FROM ax_flurstueck f 437 JOIN ap_pto p ON f.gml_id = ANY( p.dientzurdarstellungvon) 438 WHERE f.endet IS NULL; 439 -- TIPP: mit zusÀtzlichem LIMIT auftrufen! 440 441 COMMENT ON VIEW flstnr_mit_manueller_position 442 IS 'Sicht fÃŒr Datenanalyse: FlurstÃŒcke MIT manuell gesetzter Position fÃŒr die PrÀsentation der FS-Nr'; 443 444 CREATE OR REPLACE VIEW flstnr_ohne_manuelle_position 445 AS 446 SELECT f.gml_id, 447 f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS such -- Suchstring fÃŒr ALKIS-Navigation nach FS-Kennzeichen 448 FROM ax_flurstueck f 449 LEFT JOIN ap_pto p ON f.gml_id = ANY( p.dientzurdarstellungvon) 450 WHERE p.gml_id IS NULL 451 AND f.endet IS NULL; 452 -- TIPP: mit zusÀtzlichem LIMIT auftrufen! 453 454 COMMENT ON VIEW flstnr_ohne_manuelle_position 455 IS 'Sicht fÃŒr Datenanalyse: FlurstÃŒcke OHNE manuell gesetzte Position fÃŒr die PrÀsentation der FS-Nr'; 456 490 457 491 458 -- Umbruch im Label? z.B. "Schwimm-/nbecken" … … 495 462 SELECT ogc_fid, schriftinhalt, art 496 463 FROM ap_pto 497 WHERE not schriftinhalt is null498 AND schriftinhalt like '%/n%'; 464 WHERE NOT schriftinhalt IS NULL AND schriftinhalt LIKE '%/n%'; 465 499 466 COMMENT ON VIEW texte_mit_umbruch 500 467 IS 'Sicht fÃŒr Datenanalyse: Vorkommen eines Umbruchs im Label-Text.'; … … 508 475 FROM ax_flurstueck f 509 476 WHERE f.endet IS NULL; 477 510 478 COMMENT ON VIEW flurstuecks_minmax 511 479 IS 'Sicht fÃŒr Datenanalyse: Maximale Ausdehnung von ax_flurstueck fuer EXTENT-Angabe im Mapfile.'; … … 517 485 r.wkb_geometry, 518 486 r.gml_id, 519 r.artderfestlegung asadfkey, -- Art der Festlegung - Key487 r.artderfestlegung AS adfkey, -- Art der Festlegung - Key 520 488 r."name", -- Eigenname des Gebietes 521 489 r.stelle, -- Stelle Key … … 528 496 ON r.artderfestlegung = a.wert 529 497 LEFT JOIN ax_dienststelle d 530 ON r.land = d.land 531 AND r.stelle = d.stelle 498 ON r.land = d.land AND r.stelle = d.stelle 532 499 WHERE r.endet IS NULL AND d.endet IS NULL ; 500 533 501 COMMENT ON VIEW baurecht 534 502 IS 'Datenanalyse: EnstschlÃŒsselte Felder zu einer FlÀche des Baurechts.'; … … 542 510 WHERE endet IS NULL 543 511 ORDER BY land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer; 512 544 513 COMMENT ON VIEW gemarkung_in_gemeinde 545 IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck .';514 IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒcken ermitteln.'; 546 515 547 516 … … 554 523 WHERE endet IS NULL 555 524 GROUP BY st_geometrytype(wkb_geometry); 525 556 526 COMMENT ON VIEW arten_von_flurstuecksgeometrie IS 'Datenanalyse: vorkommende Geometry-Typen in Tabelle ax_flurstueck.'; 557 527 … … 559 529 -- A d r e s s e n 560 530 561 -- Verschluesselte Lagebezeichnung (Strasse und Hausnummer) f uer eine Gemeinde562 -- Schl uessel der Gemeindenach Bedarf anpassen!531 -- Verschluesselte Lagebezeichnung (Strasse und Hausnummer) fÃŒr eine Gemeinde 532 -- SchlÃŒssel der Gemeinde im Filter (WHERE) nach Bedarf anpassen! 563 533 CREATE OR REPLACE VIEW adressen_hausnummern 564 534 AS … … 566 536 s.bezeichnung AS strassenname, 567 537 g.bezeichnung AS gemeindename, 568 l.land, 569 l.regierungsbezirk, 570 l.kreis, 571 l.gemeinde, 572 l.lage AS strassenschluessel, 573 l.hausnummer 574 FROM ax_lagebezeichnungmithausnummer l 575 JOIN ax_gemeinde g 576 ON l.kreis=g.kreis 577 AND l.gemeinde=g.gemeinde 578 JOIN ax_lagebezeichnungkatalogeintrag s 579 ON l.kreis=s.kreis 580 AND l.gemeinde=s.gemeinde 581 AND l.lage = s.lage 582 WHERE l.gemeinde = 40; -- "40" = Stadt Lage 538 l.land, l.regierungsbezirk, l.kreis, l.gemeinde, 539 l.lage AS strassenschluessel, l.hausnummer 540 FROM ax_lagebezeichnungmithausnummer l 541 JOIN ax_gemeinde g 542 ON l.kreis=g.kreis AND l.gemeinde=g.gemeinde 543 JOIN ax_lagebezeichnungkatalogeintrag s 544 ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage = s.lage 545 WHERE l.gemeinde = '40'; -- '40' = Stadt Lage 546 583 547 COMMENT ON VIEW adressen_hausnummern IS 'Datenanalyse: VerschlÃŒsselte Lagebezeichnung (StraÃe und Hausnummer) fÃŒr eine Gemeinde. SchlÃŒssel der Gemeinde nach Bedarf anpassen.'; 584 548 585 -- Zuordnung dieserAdressen zu Flurstuecken549 -- Zuordnung Adressen zu Flurstuecken 586 550 -- Schluessel der Gemeinde nach Bedarf anpassen! 587 551 CREATE OR REPLACE VIEW adressen_zum_flurstueck … … 597 561 l.hausnummer 598 562 FROM ax_flurstueck f 599 JOIN alkis_beziehungen v 600 ON f.gml_id=v.beziehung_von 601 JOIN ax_lagebezeichnungmithausnummer l 602 ON l.gml_id=v.beziehung_zu 603 JOIN ax_gemeinde g 604 ON l.kreis=g.kreis 605 AND l.gemeinde=g.gemeinde 606 JOIN ax_lagebezeichnungkatalogeintrag s 607 ON l.kreis=s.kreis 608 AND l.gemeinde=s.gemeinde 609 AND l.lage = s.lage 610 WHERE v.beziehungsart='weistAuf' 611 AND l.gemeinde = 40 -- "40" = Stadt Lage 563 JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id = ANY (f.weistauf) 564 JOIN ax_gemeinde g ON l.kreis=g.kreis AND l.gemeinde=g.gemeinde 565 JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage = s.lage 566 -- WHERE l.gemeinde = '40' -- ggf. Anpassen 612 567 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner; 568 613 569 COMMENT ON VIEW adressen_zum_flurstueck IS 'Datenanalyse: Zuordnung von Adressen zu Flurstuecken. SchlÃŒssel der Gemeinde nach Bedarf anpassen.'; 614 570 … … 620 576 FROM ap_pto 621 577 WHERE not schriftinhalt is null 622 ORDER BY art; 578 ORDER BY art; 579 623 580 COMMENT ON VIEW beschriftung_was_kommt_vor IS 'Analyse der vorkommenden Kombinationen in ap_pto (Beschriftung)'; 624 625 -- Ergebnis:626 -- 2013: PostNAS 0.7 (aus 150,260,340)627 -- ------------------628 -- "AOG_AUG" "zentrisch";"Basis" - Schriftinhalkt immer nur "I" ?629 -- "BWF" "zentrisch";"Basis"/"zentrisch";"Mitte"630 -- "BWF_ZUS" "zentrisch";"Basis"631 -- "FKT" "zentrisch";"Basis"/"linksbÃŒndig";"Basis"/"zentrisch";"Mitte"632 -- "FKT_TEXT" "zentrisch";"Mitte"633 -- "FreierText" "zentrisch";"Basis"/"zentrisch";"Mitte"/"linksbÃŒndig";"Basis"634 -- "FreierTextHHO" "zentrisch";"Mitte"635 -- "Friedhof" "zentrisch";"Basis"636 -- "Gewanne" "zentrisch";"Basis"/"zentrisch";"Mitte"637 -- "GFK" "zentrisch";"Basis"/"zentrisch";"Mitte"638 -- "HNR" "zentrisch";"Basis"/"linksbÃŒndig";"Basis"/"zentrisch";"Mitte" --> Hausnummer, group gebaeude639 -- "HHO" "zentrisch";"Mitte" -- HHO = objekthoehe zu ax_gebaeude?640 -- "NAM" "zentrisch";"Basis"/"zentrisch";"Mitte"/"linksbÃŒndig";"Basis"641 -- "SPO" "zentrisch";"Basis"/642 -- "Vorratsbehaelter" "zentrisch";"Basis"643 -- "WeitereHoehe" "zentrisch";"Mitte"644 -- "ZAE_NEN" "zentrisch";"Basis"645 -- "ZNM" "zentrisch";"Basis"/"linksbÃŒndig";"Basis"646 647 --* Layer "ap_pto_stra"648 -- hor ; ver / hor ; ver649 -- "BezKlassifizierungStrasse" "zent.";"Basis" / "linksbÃŒndig";"Basis"650 -- "Platz" "zentrisch";"Basis" / "zentrisch";"Mitte"651 -- "Strasse" "zentrisch";"Basis" / "zentrisch";"Mitte" / "linksbÃŒndig";"Basis"652 -- "Weg" "zentrisch";"Basis" / "zentrisch";"Mitte" / "linksbÃŒndig";"Basis"653 654 --* geplanter layer "ap_pto_wasser"655 -- "StehendesGewaesser" "zentrisch";"Basis"656 -- "Fliessgewaesser" "zentrisch";"Basis"/"linksbÃŒndig";"Basis"657 658 581 659 582 -- FlurstÃŒcke eines EigentÃŒmers … … 662 585 -- Dieser View liefert nur die (einfache) Buchungsart "GrundstÃŒck" 663 586 -- Solche FÀlle wie "Erbbaurecht an GrundstÃŒck" oder "Wohnungs-/Teileigentum an aufgeteiltes GrundstÃŒck" 664 -- oder "Miteigentum an auf teteiltes GrundstÃŒck" fehlen in deisereAuswertung.587 -- oder "Miteigentum an aufgeteiltes GrundstÃŒck" fehlen in dieser Auswertung. 665 588 -- Dazu siehe: "rechte_eines_eigentuemers". 666 589 667 -- Das Erg benis ist gedacht fÃŒr den Export als CSV und Weiterverarbeitung mit einer Tabellenkalkulation590 -- Das Ergebnis ist gedacht fÃŒr den Export als CSV und Weiterverarbeitung mit einer Tabellenkalkulation 668 591 -- oder einer einfachen Datenbank. 669 592 670 -- Auch ein Export als Shape ist moeglich (daf uer: geom hinzugefuegt, Feldnamen gekuerzt)593 -- Auch ein Export als Shape ist moeglich (dafÃŒr: geom hinzugefÃŒgt, Feldnamen gekÃŒrzt) 671 594 -- Kommando: 672 595 -- pgsql2shp -h localhost -p 5432 -f "/data/.../alkis_fs_gemeinde.shp" [db-name] public.flurstuecke_eines_eigentuemers … … 676 599 -- Person <benennt< NamNum. >istBestandteilVon> Blatt <istBestandteilVon< Stelle >istGebucht> Flurstueck 677 600 -- *-> Bezirk *-> Buchungsart *-> Gemarkung 678 679 -- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx".680 601 681 602 CREATE OR REPLACE VIEW flurstuecke_eines_eigentuemers … … 700 621 p.nachnameoderfirma AS nachname --, 701 622 -- p.vorname 702 FROM ax_person p 703 JOIN alkis_beziehungen bpn ON bpn.beziehung_zu = p.gml_id 704 JOIN ax_namensnummer n ON bpn.beziehung_von =n.gml_id 705 JOIN alkis_beziehungen bng ON n.gml_id = bng.beziehung_von 706 JOIN ax_buchungsblatt g ON bng.beziehung_zu = g.gml_id 707 JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk 708 JOIN alkis_beziehungen bgs ON bgs.beziehung_zu = g.gml_id 709 JOIN ax_buchungsstelle s ON s.gml_id = bgs.beziehung_von 710 JOIN ax_buchungsstelle_buchungsart art ON s.buchungsart = art.wert 711 JOIN alkis_beziehungen bsf ON bsf.beziehung_zu = s.gml_id 712 JOIN ax_flurstueck f ON f.gml_id = bsf.beziehung_von 713 JOIN ax_gemarkung k ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer 714 WHERE p.nachnameoderfirma LIKE 'Gemeinde %' -- ** Bei Bedarf anpassen! 715 AND bpn.beziehungsart = 'benennt' -- Namennummer >> Person 716 AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer >> Grundbuch 717 AND bgs.beziehungsart = 'istBestandteilVon' -- Buchungs-Stelle >> Grundbuch 718 AND bsf.beziehungsart = 'istGebucht' -- Flurstueck >> Buchungs-Stelle 623 FROM ax_person p 624 JOIN ax_namensnummer n -- Namennummer >benennt> Person 625 ON p.gml_id = n.benennt 626 JOIN ax_buchungsblatt g -- Namensnummer >istBestandteilVon> Grundbuch 627 ON n.istbestandteilvon = g.gml_id 628 JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk 629 JOIN ax_buchungsstelle s -- Buchungs-Stelle >istBestandteilVon> Grundbuch 630 ON s.istbestandteilvon = g.gml_id 631 JOIN ax_buchungsstelle_buchungsart art 632 ON s.buchungsart = art.wert 633 JOIN ax_flurstueck f -- Flurstueck >istGebucht> Buchungs-Stelle 634 ON f.istgebucht = s.gml_id 635 JOIN ax_gemarkung k 636 ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer 637 WHERE p.nachnameoderfirma LIKE 'Stadt %' -- ** Bei Bedarf anpassen! 719 638 AND p.endet IS NULL AND n.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL 720 639 AND s.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL 721 640 ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer; 722 COMMENT ON VIEW flurstuecke_eines_eigentuemers IS 'Muster fÃŒr Export: Suchkriteriumnach Bedarf anpassen.'; 641 642 COMMENT ON VIEW flurstuecke_eines_eigentuemers 643 IS 'Nur einfache Buchungsart "GrundstÃŒck". Muster fÃŒr Export: Suchkriterium nach Bedarf anpassen.'; 644 723 645 724 646 -- Rechte eines EigentÃŒmers … … 736 658 -- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx". 737 659 660 -- DROP VIEW rechte_eines_eigentuemers; 738 661 CREATE OR REPLACE VIEW rechte_eines_eigentuemers 739 662 AS … … 753 676 sh.zaehler || '/' || sh.nenner AS buchg_anteil_herr, 754 677 arth.bezeichner AS buchgsa_herr, 755 bss.beziehungsart AS bez_art,756 678 artd.bezeichner AS buchgsa_dien, 757 679 sd.laufendenummer AS bvnr_dien, … … 761 683 p.nachnameoderfirma AS nachname --, 762 684 -- p.vorname 763 FROM ax_person p 764 JOIN alkis_beziehungen bpn ON bpn.beziehung_zu = p.gml_id 765 JOIN ax_namensnummer n ON bpn.beziehung_von =n.gml_id 766 JOIN alkis_beziehungen bng ON n.gml_id = bng.beziehung_von 767 JOIN ax_buchungsblatt g ON bng.beziehung_zu = g.gml_id 768 JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk 769 JOIN alkis_beziehungen bgs ON bgs.beziehung_zu = g.gml_id 770 JOIN ax_buchungsstelle sh ON sh.gml_id = bgs.beziehung_von -- herrschende Buchung 771 JOIN ax_buchungsstelle_buchungsart arth ON sh.buchungsart = arth.wert 772 JOIN alkis_beziehungen bss ON sh.gml_id = bss.beziehung_von 773 JOIN ax_buchungsstelle sd ON sd.gml_id = bss.beziehung_zu -- dienende Buchung 774 JOIN ax_buchungsstelle_buchungsart artd ON sd.buchungsart = artd.wert 775 JOIN alkis_beziehungen bsf ON bsf.beziehung_zu = sd.gml_id 776 JOIN ax_flurstueck f ON f.gml_id = bsf.beziehung_von 777 JOIN ax_gemarkung k ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer 778 WHERE p.nachnameoderfirma LIKE 'Stadt %' -- ** Bei Bedarf anpassen! 779 AND bpn.beziehungsart = 'benennt' -- Namennummer >> Person 780 AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer >> Grundbuch 781 AND bgs.beziehungsart = 'istBestandteilVon' -- B-Stelle herr >> Grundbuch 782 AND bss.beziehungsart in ('an','zu') -- B-Stelle herr. >> B-Stelle dien. 783 AND bsf.beziehungsart = 'istGebucht' -- Flurstueck >> B-Stelle dien 685 FROM ax_person p 686 JOIN ax_namensnummer n -- Namennummer >benennt> Person 687 ON p.gml_id = n.benennt 688 JOIN ax_buchungsblatt g -- Namensnummer >istBestandteilVon> Grundbuch 689 ON n.istBestandteilVon = g.gml_id 690 JOIN ax_buchungsblattbezirk b 691 ON g.land = b.land AND g.bezirk = b.bezirk 692 JOIN ax_buchungsstelle sh -- B-Stelle herr >istBestandteilVon> Grundbuch 693 ON sh.istbestandteilvon = g.gml_id -- herrschende Buchung 694 JOIN ax_buchungsstelle_buchungsart arth 695 ON sh.buchungsart = arth.wert 696 JOIN ax_buchungsstelle sd -- B-Stelle herr. >an/zu> B-Stelle dien. 697 ON (sd.gml_id =ANY(sh.an) OR sd.gml_id = ANY(sh.zu) ) 698 JOIN ax_buchungsstelle_buchungsart artd 699 ON sd.buchungsart = artd.wert 700 JOIN ax_flurstueck f -- Flurstueck >istGebucht> B-Stelle dien 701 ON f.istgebucht = sd.gml_id 702 JOIN ax_gemarkung k 703 ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer 704 WHERE p.nachnameoderfirma LIKE 'Stadt %' -- ** Bei Bedarf anpassen! 784 705 AND p.endet IS NULL AND n.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL 785 706 AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL 786 707 ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, sh.laufendenummer; 708 787 709 COMMENT ON VIEW rechte_eines_eigentuemers IS 'Muster fÃŒr Export: Suchkriteriumnach Bedarf anpassen. Dies ergÀnzt "flurstuecke_eines_eigentuemers" um die FÀlle mit besonderen Buchungen.'; 788 789 -- Die 2 Views nur fuer Entwicklung:790 791 -- CREATE OR REPLACE VIEW beziehungen_redundant792 -- AS793 -- SELECT *794 -- FROM alkis_beziehungen AS bezalt795 -- WHERE EXISTS796 -- (SELECT ogc_fid797 -- FROM alkis_beziehungen AS bezneu798 -- WHERE bezalt.beziehung_von = bezneu.beziehung_von799 -- AND bezalt.beziehung_zu = bezneu.beziehung_zu800 -- AND bezalt.beziehungsart = bezneu.beziehungsart801 -- AND bezalt.ogc_fid < bezneu.ogc_fid802 -- );803 -- COMMENT ON VIEW beziehungen_redundant IS 'Datenanalyse: alkis_beziehungen zu denen es eine identische neue Version gibt. Fehlersuche bei PostNAS-Trigger fÃŒr Replace.';804 --805 -- CREATE OR REPLACE VIEW beziehungen_redundant_in_delete806 -- AS807 -- SELECT *808 -- FROM alkis_beziehungen AS bezalt809 -- WHERE EXISTS810 -- (SELECT ogc_fid811 -- FROM alkis_beziehungen AS bezneu812 -- WHERE bezalt.beziehung_von = bezneu.beziehung_von813 -- AND bezalt.beziehung_zu = bezneu.beziehung_zu814 -- AND bezalt.beziehungsart = bezneu.beziehungsart815 -- AND bezalt.ogc_fid < bezneu.ogc_fid816 -- )817 -- -- mit dem Zusatz nur die Faelle aus dem letzten Durchlauf,818 -- -- die aktuell noch in der Delete-Tabelle stehen819 -- AND EXISTS820 -- (SELECT ogc_fid821 -- FROM delete822 -- WHERE bezalt.beziehung_von = substr(featureid, 1, 16)823 -- OR bezalt.beziehung_zu = substr(featureid, 1, 16)824 -- );825 -- COMMENT ON VIEW beziehungen_redundant_in_delete IS 'Datenanalyse: alkis_beziehungen zu denen es eine identische neue Version gibt und wo das Objekt noch in der delete-Tabelle vorkommt. Fehlersuche bei PostNAS-Trigger fÃŒr Replace.';826 827 828 -- Suche nach Fehler durch "Replace"829 -- Wenn ax_flurstueck ÃŒber "replace" ausgetauscht wird und dabei gleichzeitig eine andere830 -- Buchungsstelle bekommt, dann bleibt die alte Buchungsstelle in den alkis_beziehungen.831 -- Mail PostNAS Mailingliste von 2013-02-20832 CREATE OR REPLACE VIEW mehrfache_buchung_zu_fs833 AS834 SELECT f.gml_id, count(b.ogc_fid) AS anzahl835 FROM ax_flurstueck f836 JOIN alkis_beziehungen b837 ON f.gml_id = b.beziehung_von838 WHERE b.beziehungsart = 'istGebucht'839 GROUP BY f.gml_id840 HAVING count(b.ogc_fid) > 1;841 842 -- Noch einfacher? - Auch ohne JOIN wird das selbe Ergebnis geliefert.843 -- Doppelte Verweise zÀhlen ohne zu prÃŒfen, ob die gml_id in ax_flurstueck existiert.844 -- SELECT b.beziehung_von, count(b.ogc_fid) AS anzahl845 -- FROM alkis_beziehungen b846 -- WHERE b.beziehungsart = 'istGebucht'847 -- GROUP BY b.beziehung_von848 -- HAVING count(b.ogc_fid) > 1;849 850 COMMENT ON VIEW mehrfache_buchung_zu_fs851 IS 'Fehler: Nach replace von ax_flurtstueck mit einer neuen ax_buchungsstelle bleibt die alte Verbindung in alkis_beziehungen';852 710 853 711 … … 863 721 SELECT l.gml_id, l.gemeinde, l.lage, l.hausnummer 864 722 FROM ax_gebaeude g 865 JOIN alkis_beziehungen b ON b.beziehung_von = g.gml_id 866 JOIN ax_lagebezeichnungmithausnummer l ON b.beziehung_zu = l.gml_id 867 WHERE b.beziehungsart = 'zeigtAuf' 723 JOIN ax_lagebezeichnungmithausnummer l 724 ON l.gml_id = ANY(g.zeigtauf) 868 725 GROUP BY l.gml_id, l.gemeinde, l.lage, l.hausnummer 869 726 HAVING count(g.gml_id) > 1; 870 727 871 728 COMMENT ON VIEW fehler_hausnummer_mehrfach_verwendet 872 IS 'Fehler: Nach replace von ax_lagebezeichnungmithausnummer mit einem neuen ax_gebaeude bleibt die alte Verbindung in alkis_beziehungen'; 873 874 875 -- Der umgekehrt Fall ist erlaubt. 876 -- GebÀude hat mehrere Nummern. 877 729 IS 'Fehlersuche: Nach replace von ax_lagebezeichnungmithausnummer mit einem neuen ax_gebaeude bleibt die alte Verbindung?'; 730 731 -- Ein GebÀude hat mehrere Nummern. 878 732 CREATE OR REPLACE VIEW adressen_zu_gebauede_mit_mehreren_hausnummern 879 733 AS 880 SELECT l.gml_id, l.gemeinde, l.lage, l.hausnummer -- Anzeige der Adressfelder 881 FROM ax_gebaeude g1 882 JOIN alkis_beziehungen b ON b.beziehung_von = g1.gml_id 883 JOIN ax_lagebezeichnungmithausnummer l ON b.beziehung_zu = l.gml_id 884 WHERE b.beziehungsart = 'zeigtAuf' AND g1.gml_id IN -- Subquery sucht GebÀude mit meherern Hausnummen 734 SELECT g1.gml_id, l1.gemeinde, l1.lage, l1.hausnummer -- Anzeige der Adressfelder 735 FROM ax_gebaeude g1 736 JOIN ax_lagebezeichnungmithausnummer l1 ON l1.gml_id = ANY(g1.zeigtauf) 737 WHERE g1.gml_id IN -- Subquery sucht GebÀude mit meherern Hausnummen 885 738 (SELECT g2.gml_id 886 FROM ax_gebaeude g2 887 JOIN alkis_beziehungen b ON b.beziehung_von = g2.gml_id 888 JOIN ax_lagebezeichnungmithausnummer l ON b.beziehung_zu = l.gml_id 889 WHERE b.beziehungsart = 'zeigtAuf' 890 GROUP BY g2.gml_id 891 HAVING count(l.gml_id) > 1); 739 FROM ax_gebaeude g2 740 JOIN ax_lagebezeichnungmithausnummer l2 ON l2.gml_id = ANY(g2.zeigtauf) 741 GROUP BY g2.gml_id 742 HAVING count(l2.gml_id) > 1) 743 ORDER BY l1.gemeinde, l1.lage, l1.hausnummer; 892 744 893 745 COMMENT ON VIEW adressen_zu_gebauede_mit_mehreren_hausnummern … … 911 763 -- Analyse: FÀlle mit Erbbaurecht 912 764 -- Benutzt den Baustein-View "doppelverbindung" 765 766 -- +++ BESSER: analog doppelverbindung direkt codieren 767 913 768 CREATE OR REPLACE VIEW erbbaurechte_suchen 914 769 AS 915 SELECT f.gml_id, 916 --f.flurstueckskennzeichen, 917 f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler AS fssuch, f.nenner 770 SELECT f.gml_id, f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler AS fssuch, f.nenner 918 771 FROM ax_flurstueck f 919 772 JOIN doppelverbindung d -- beide FÀlle ÃŒber Union-View: direkt und ÃŒber Recht von BS an BS 920 773 ON d.fsgml = f.gml_id 774 775 776 921 777 JOIN ax_buchungsstelle s -- Buchungs-Stelle 922 778 ON d.bsgml = s.gml_id 923 779 WHERE s.buchungsart = 2101; 924 780 781 782 783 925 784 COMMENT ON VIEW erbbaurechte_suchen 926 785 IS 'Suche nach FÀllen mit Buchungsrt 2101=Erbbaurecht'; 927 928 929 -- Probleme mit der Trigger-Function "update_fields_beziehungen()"930 -- Manchmal kann zu einer gml_id in "alkis_beziehungen" die zustÀndige Tabelle nicht gefunden werden.931 -- Nach Ãnderung der Trigger-Function am 10.12.2013 wird die Beziehung trotzdem eingetragen,932 -- nur die Felder "von_typename" und "beginnt" bleiben leer.933 -- 2014-01-31: Dieser Trigger wird nicht mehr verwendet.934 935 -- Diese FÀlle anzeigen:936 -- CREATE OR REPLACE VIEW beziehungsproblem_faelle937 -- AS938 -- SELECT *939 -- FROM alkis_beziehungen940 -- WHERE beginnt IS NULL;941 -- COMMENT ON VIEW beziehungsproblem_faelle942 -- IS 'Fehlersuche: Im Trigger "update_fields_beziehungen()" wurde das Objekt in seiner Tabelle nicht gefunden, darum kein "beginnt" in "alkis_beziehungen" eingetragen.';943 944 -- Wie viele sind das?945 -- CREATE OR REPLACE VIEW beziehungsproblem_zaehler946 -- AS947 -- SELECT count(ogc_fid) AS anzahl948 -- FROM alkis_beziehungen949 -- WHERE beginnt IS NULL;950 -- COMMENT ON VIEW beziehungsproblem_faelle951 -- IS 'Fehlersuche: Wie oft fehlt das beginnt-Feld in alkis_beziehungen?';952 786 953 787 … … 955 789 -- Diese FÀlle fÃŒhren möglicherweise zu unvollstÀndiger Ausgabe beim Export "alle FlurstÃŒcke an einer StraÃe" 956 790 -- weil nur Lagebezeichnung MIT und OHNE Hausnummer gesucht wird, aber keine gleich lautende Gewanne. 791 792 -- DROP VIEW strasse_als_gewanne; 957 793 CREATE OR REPLACE VIEW strasse_als_gewanne 958 794 AS 959 795 SELECT k.gemeinde, k.lage AS strassenschluessel, 960 -- k.bezeichnung AS strassenname, 961 o.unverschluesselt AS gewanne, 962 count(fo.gml_id) AS anzahl_fs_gewanne 796 o.unverschluesselt AS gewanne_und_strasse, -- = k.bezeichnung = StraÃenname 797 count(f.gml_id) AS anzahl_fs_gewanne 963 798 FROM ax_lagebezeichnungkatalogeintrag k -- StraÃentabelle 964 799 JOIN ax_lagebezeichnungohnehausnummer o -- Gewanne 965 800 ON k.bezeichnung = o.unverschluesselt -- Gleiche Namen 966 -- Join Gewanne auf FlurstÃŒcke um nur solche FÀlle anzuzeigen, die verwendet werden801 -- Join Gewanne auf FlurstÃŒcke um nur solche FÀlle anzuzeigen, die hier verwendet werden. 967 802 -- UND die auch in der gleichen Gemeinde liegen. 968 803 -- Sonst könnte zufÀllige Namensgleichheiten aus verschiedenen Gemeinden geben. 969 JOIN alkis_beziehungen vo 970 ON o.gml_id=vo.beziehung_zu AND vo.beziehungsart= 'zeigtAuf' 971 JOIN ax_flurstueck fo 972 ON fo.gml_id=vo.beziehung_von 973 WHERE fo.gemeinde = k.gemeinde -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraÃenschlÃŒssel 974 GROUP BY k.gemeinde, k.lage, o.unverschluesselt --, k.bezeichnung 975 ORDER BY k.gemeinde, k.lage, o.unverschluesselt --, k.bezeichnung 976 ; 804 JOIN ax_flurstueck f -- Flurst. >zeigtAuf> Lage 805 ON o.gml_id = ANY(f.zeigtauf) 806 WHERE f.gemeinde = k.gemeinde -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraÃenschlÃŒssel 807 GROUP BY k.gemeinde, k.lage, o.unverschluesselt 808 ORDER BY k.gemeinde, k.lage, o.unverschluesselt; 977 809 978 810 COMMENT ON VIEW strasse_als_gewanne … … 982 814 -- Wie zuvor, aber die FlurstÃŒcke werden hier nicht nur gezÀhlt sondern auch aufgelistet. 983 815 -- das Format des FlusrtÃŒckskennzeichens kann in die Mapbender-Navigation eingegeben werden. 816 984 817 CREATE OR REPLACE VIEW strasse_als_gewanne_flst 985 818 AS 986 SELECT -- fo.gml_id, 987 fo.gemarkungsnummer || '-' || fo.flurnummer || '-' || fo.zaehler::text || COALESCE ('/' || fo.nenner::text, '') AS flstkennz, 819 SELECT fo.gemarkungsnummer || '-' || fo.flurnummer || '-' || fo.zaehler::text || COALESCE ('/' || fo.nenner::text, '') AS flstkennz, 988 820 k.gemeinde, 989 821 o.unverschluesselt AS gewanne, 990 -- k.bezeichnung AS strassenname,991 822 k.lage -- AS strassen_schluessel 992 823 FROM ax_lagebezeichnungkatalogeintrag k -- StraÃentabelle 993 824 JOIN ax_lagebezeichnungohnehausnummer o -- Gewanne 994 825 ON k.bezeichnung = o.unverschluesselt -- Gleiche Namen 995 JOIN alkis_beziehungen vo 996 ON o.gml_id=vo.beziehung_zu AND vo.beziehungsart= 'zeigtAuf' 997 JOIN ax_flurstueck fo 998 ON fo.gml_id=vo.beziehung_von 826 JOIN ax_flurstueck fo -- Flurst. >zeigtAuf> Lage 827 ON o.gml_id = ANY(fo.zeigtauf) 999 828 WHERE fo.gemeinde = k.gemeinde -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraÃenschlÃŒssel 1000 829 ORDER BY fo.gemarkungsnummer, fo.flurnummer, fo.zaehler, k.gemeinde, k.bezeichnung; … … 1004 833 1005 834 1006 1007 835 -- Suche nach Fehlern in den Daten, die moeglicherweise aus der Migration stammen und 1008 836 -- im Rahmen der Nachmigration noch korrigiert werden muessen. … … 1011 839 AS 1012 840 SELECT DISTINCT p.gml_id, p.nachnameoderfirma, p.vorname, 1013 a1.ort_post, a1.strasse AS strasse1, a2.strasse AS strasse2, a1.hausnummer 1014 -- , b1.import_id AS import1, b2.import_id AS import2 1015 FROM ax_person p 1016 JOIN alkis_beziehungen b1 ON b1.beziehung_von=p.gml_id 1017 JOIN ax_anschrift a1 ON a1.gml_id=b1.beziehung_zu 1018 JOIN alkis_beziehungen b2 ON b2.beziehung_von=p.gml_id 1019 JOIN ax_anschrift a2 ON a2.gml_id=b2.beziehung_zu 1020 WHERE b1.beziehungsart='hat' 1021 AND b2.beziehungsart='hat' 1022 AND a1.gml_id <> a2.gml_id 1023 AND a1.ort_post = a2.ort_post 1024 AND a1.strasse like trim(a2.strasse, '.') || '%' 1025 AND a1.hausnummer = a2.hausnummer 841 a1.ort_post, a1.strasse AS strasse1, a2.strasse AS strasse2, a1.hausnummer 842 FROM ax_person p 843 JOIN ax_anschrift a1 ON a1.gml_id = ANY(p.hat) 844 JOIN ax_anschrift a2 ON a2.gml_id = ANY(p.hat) 845 WHERE a1.gml_id <> a2.gml_id 846 AND a1.ort_post = a2.ort_post 847 AND a1.strasse like trim(a2.strasse, '.') || '%' 848 AND a1.hausnummer = a2.hausnummer 849 AND p.endet IS NULL AND a1.endet IS NULL and a2.endet IS NULL 1026 850 ORDER BY p.nachnameoderfirma, p.vorname; 1027 851 1028 852 COMMENT ON VIEW nachmigration_aehnliche_anschriften 1029 IS 'Zu einer Person gibt es mehrere Anschriften, die in Ort und Hausnummer identisch sind und beim StraÃennemen entweder auch identisch sind oder eine AbkÃŒrzung mit Punkt enthalten.'; 853 IS 'Nachmigration? Zu einer Person gibt es mehrere Anschriften, die in Ort und Hausnummer identisch sind und beim StraÃennemen entweder auch identisch sind oder eine AbkÃŒrzung mit Punkt enthalten.'; 854 855 856 -- Bevor alle inversen Relationen im Schema auskommentiert werden, 857 -- noch mal in die Datenbank schauen, ob nicht doch eine davon gefÃŒllt ist. 858 -- Nach dem Entfernen dieser Spalten wird der View nicht mehr funktionieren 859 -- und wird darum ebenfalls auskommentiert. 860 861 /* 862 CREATE OR REPLACE VIEW nicht_gefuellte_inverse_relationen_spalten 863 AS 864 SELECT 'ax_flurstueck' AS tabelle, 'beziehtsichaufflurstueck' AS spalte, 865 count(gml_id) AS anzahl_eintraege 866 FROM ax_flurstueck WHERE NOT beziehtsichaufflurstueck IS NULL 867 UNION 868 SELECT 'ax_flurstueck' AS tabelle, 'gehoertanteiligzu' AS spalte, 869 count(gml_id) AS anzahl_eintraege 870 FROM ax_flurstueck WHERE NOT gehoertanteiligzu IS NULL 871 UNION 872 SELECT 'ax_lagebezeichnungohnehausnummer' AS tabelle, 'beschreibt' AS spalte, 873 count(gml_id) AS anzahl_eintraege 874 FROM ax_lagebezeichnungohnehausnummer WHERE NOT beschreibt IS NULL 875 UNION 876 SELECT 'ax_lagebezeichnungohnehausnummer' AS tabelle, 'gehoertzu' AS spalte, 877 count(gml_id) AS anzahl_eintraege 878 FROM ax_lagebezeichnungohnehausnummer WHERE NOT gehoertzu IS NULL 879 UNION 880 SELECT 'ax_lagebezeichnungmithausnummer' AS tabelle, 'hat' AS spalte, 881 count(gml_id) AS anzahl_eintraege 882 FROM ax_lagebezeichnungmithausnummer WHERE NOT hat IS NULL 883 UNION 884 SELECT 'ax_lagebezeichnungmithausnummer' AS tabelle, 'beziehtsichauf' AS spalte, 885 count(gml_id) AS anzahl_eintraege 886 FROM ax_lagebezeichnungmithausnummer WHERE NOT beziehtsichauf IS NULL 887 UNION 888 SELECT 'ax_lagebezeichnungmithausnummer' AS tabelle, 'beziehtsichauchauf' AS spalte, 889 count(gml_id) AS anzahl_eintraege 890 FROM ax_lagebezeichnungmithausnummer WHERE NOT beziehtsichauchauf IS NULL 891 UNION 892 SELECT 'ax_lagebezeichnungmithausnummer' AS tabelle, 'gehoertzu' AS spalte, 893 count(gml_id) AS anzahl_eintraege 894 FROM ax_lagebezeichnungmithausnummer WHERE NOT gehoertzu IS NULL 895 UNION 896 SELECT 'ax_lagebezeichnungmithausnummer' AS tabelle, 'weistzum' AS spalte, 897 count(gml_id) AS anzahl_eintraege 898 FROM ax_lagebezeichnungmithausnummer WHERE NOT weistzum IS NULL 899 UNION 900 SELECT 'ax_lagebezeichnungmitpseudonummer' AS tabelle, 'gehoertzu' AS spalte, 901 count(gml_id) AS anzahl_eintraege 902 FROM ax_lagebezeichnungmitpseudonummer WHERE NOT gehoertzu IS NULL 903 --UNION 904 -- -- ist gefÃŒllt! 905 -- SELECT 'ax_georeferenziertegebaeudeadresse' AS tabelle, 'hatauch' AS spalte, 906 -- count(gml_id) AS anzahl_eintraege 907 -- FROM ax_georeferenziertegebaeudeadresse WHERE NOT hatauch IS NULL 908 UNION 909 SELECT 'ax_sicherungspunkt' AS tabelle, 'beziehtsichauf' AS spalte, 910 count(gml_id) AS anzahl_eintraege 911 FROM ax_sicherungspunkt WHERE NOT beziehtsichauf IS NULL 912 UNION 913 SELECT 'ax_sicherungspunkt' AS tabelle, 'gehoertzu' AS spalte, 914 count(gml_id) AS anzahl_eintraege 915 FROM ax_sicherungspunkt WHERE NOT gehoertzu IS NULL 916 -- Punktort: ist gefÃŒllt (nicht invers) 917 --UNION 918 -- SELECT 'ax_punktortag' AS tabelle, 'istteilvon' AS spalte, 919 -- count(gml_id) AS anzahl_eintraege 920 -- FROM ax_punktortag WHERE NOT istteilvon IS NULL 921 --UNION 922 -- SELECT 'ax_punktortau' AS tabelle, 'istteilvon' AS spalte, 923 -- count(gml_id) AS anzahl_eintraege 924 -- FROM ax_punktortau WHERE NOT istteilvon IS NULL 925 --UNION 926 -- SELECT 'ax_punktortta' AS tabelle, 'istteilvon' AS spalte, 927 -- count(gml_id) AS anzahl_eintraege 928 -- FROM ax_punktortta WHERE NOT istteilvon IS NULL 929 UNION 930 SELECT 'ax_person' AS tabelle, 'weistauf' AS spalte, 931 count(gml_id) AS anzahl_eintraege 932 FROM ax_person WHERE NOT weistauf IS NULL 933 UNION 934 SELECT 'ax_person' AS tabelle, 'uebtaus' AS spalte, 935 count(gml_id) AS anzahl_eintraege 936 FROM ax_person WHERE NOT uebtaus IS NULL 937 UNION 938 SELECT 'ax_person' AS tabelle, 'besitzt' AS spalte, 939 count(gml_id) AS anzahl_eintraege 940 FROM ax_person WHERE NOT besitzt IS NULL 941 UNION 942 SELECT 'ax_person' AS tabelle, 'zeigtauf' AS spalte, 943 count(gml_id) AS anzahl_eintraege 944 FROM ax_person WHERE NOT zeigtauf IS NULL 945 UNION 946 SELECT 'ax_person' AS tabelle, 'benennt' AS spalte, 947 count(gml_id) AS anzahl_eintraege 948 FROM ax_person WHERE NOT benennt IS NULL 949 UNION 950 SELECT 'ax_anschrift' AS tabelle, 'beziehtsichauf' AS spalte, 951 count(gml_id) AS anzahl_eintraege 952 FROM ax_anschrift WHERE NOT beziehtsichauf IS NULL 953 UNION 954 SELECT 'ax_anschrift' AS tabelle, 'gehoertzu' AS spalte, 955 count(gml_id) AS anzahl_eintraege 956 FROM ax_anschrift WHERE NOT gehoertzu IS NULL 957 UNION 958 SELECT 'ax_verwaltung' AS tabelle, 'beziehtsichauf' AS spalte, 959 count(gml_id) AS anzahl_eintraege 960 FROM ax_verwaltung WHERE NOT beziehtsichauf IS NULL 961 UNION 962 SELECT 'ax_vertretung' AS tabelle, 'vertritt' AS spalte, 963 count(gml_id) AS anzahl_eintraege 964 FROM ax_vertretung WHERE NOT vertritt IS NULL 965 UNION 966 SELECT 'ax_buchungsblatt' AS tabelle, 'bestehtaus' AS spalte, 967 count(gml_id) AS anzahl_eintraege 968 FROM ax_buchungsblatt WHERE NOT bestehtaus IS NULL 969 UNION 970 SELECT 'ax_buchungsstelle' AS tabelle, 'grundstueckbestehtaus' AS spalte, 971 count(gml_id) AS anzahl_eintraege 972 FROM ax_buchungsstelle WHERE NOT grundstueckbestehtaus IS NULL 973 UNION 974 SELECT 'ax_gebaeude' AS tabelle, 'haengtzusammenmit' AS spalte, 975 count(gml_id) AS anzahl_eintraege 976 FROM ax_gebaeude WHERE NOT haengtzusammenmit IS NULL 977 ; 978 979 COMMENT ON VIEW nicht_gefuellte_relationen_spalten 980 IS 'ÃberprÃŒfung auf nicht gefÃŒllte Inverse Relationen. 981 Funktioniert nur, solange diese nicht entfernt wurden.'; 982 983 */ 984 985 -- Daraus resultiert der folgende Patch fÃŒr bereits angelegte Datenbanken: 986 /* 987 ALTER TABLE ax_flurstueck DROP COLUMN beziehtsichaufflurstueck; 988 ALTER TABLE ax_flurstueck DROP COLUMN gehoertanteiligzu; 989 ALTER TABLE ax_lagebezeichnungohnehausnummer DROP COLUMN beschreibt; 990 ALTER TABLE ax_lagebezeichnungohnehausnummer DROP COLUMN gehoertzu; 991 ALTER TABLE ax_lagebezeichnungmithausnummer DROP COLUMN hat; 992 ALTER TABLE ax_lagebezeichnungmithausnummer DROP COLUMN beziehtsichauf; 993 ALTER TABLE ax_lagebezeichnungmithausnummer DROP COLUMN beziehtsichauchauf; 994 ALTER TABLE ax_lagebezeichnungmithausnummer DROP COLUMN gehoertzu; 995 ALTER TABLE ax_lagebezeichnungmithausnummer DROP COLUMN weistzum; 996 ALTER TABLE ax_lagebezeichnungmitpseudonummer DROP COLUMN gehoertzu; 997 ALTER TABLE ax_sicherungspunkt DROP COLUMN beziehtsichauf; 998 ALTER TABLE ax_sicherungspunkt DROP COLUMN gehoertzu; 999 ALTER TABLE ax_person DROP COLUMN weistauf; 1000 ALTER TABLE ax_person DROP COLUMN uebtaus; 1001 ALTER TABLE ax_person DROP COLUMN besitzt; 1002 ALTER TABLE ax_person DROP COLUMN zeigtauf; 1003 ALTER TABLE ax_person DROP COLUMN benennt; 1004 ALTER TABLE ax_anschrift DROP COLUMN beziehtsichauf; 1005 ALTER TABLE ax_anschrift DROP COLUMN gehoertzu; 1006 ALTER TABLE ax_verwaltung DROP COLUMN beziehtsichauf; 1007 ALTER TABLE ax_vertretung DROP COLUMN vertritt; 1008 ALTER TABLE ax_buchungsblatt DROP COLUMN bestehtaus; 1009 ALTER TABLE ax_buchungsstelle DROP COLUMN grundstueckbestehtaus; 1010 ALTER TABLE ax_gebaeude DROP COLUMN haengtzusammenmit; 1011 */ 1030 1012 1031 1013
Note: See TracChangeset
for help on using the changeset viewer.