Changeset 363
- Timestamp:
- 03/01/16 16:53:57 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/import/sichten.sql
r353 r363 38 38 -- 2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix) 39 39 -- 2015-03-19 View "suche_grosse_gb_bestaende" 40 -- 2016-03-01 bereits auskommentierte-Substring-JOIN entfernt, neuer View "fehlersuche_nba_person" 40 41 41 42 -- Bausteine fÃŒr andere Views: … … 62 63 0 AS ba_dien 63 64 FROM ax_flurstueck f1 64 --JOIN ax_buchungsstelle b1 ON f1.istgebucht = substring(b1.gml_id,1,16)65 65 JOIN ax_buchungsstelle b1 ON f1.istgebucht = b1.gml_id 66 66 UNION … … 70 70 dien.buchungsart AS ba_dien -- Ein Feld aus der Zwischen-Buchung zur Fall-Unterscheidung 71 71 FROM ax_flurstueck f2 72 --JOIN ax_buchungsstelle dien ON f2.istgebucht = substring(dien.gml_id,1,16)73 72 JOIN ax_buchungsstelle dien ON f2.istgebucht = dien.gml_id 74 --JOIN ax_buchungsstelle b2 ON substring(dien.gml_id,1,16) = ANY (b2.an)75 73 JOIN ax_buchungsstelle b2 ON dien.gml_id = ANY (b2.an) -- auch "zu" ? 76 74 WHERE dien.endet IS NULL; -- FÃŒr das zusÀtzliche Verbindungselement die Historie HIER ausschlieÃen, … … 99 97 FROM ax_flurstueck fm -- FlurstÃŒck Mit 100 98 JOIN ax_lagebezeichnungmithausnummer lm -- Lage MIT 101 --ON substring(lm.gml_id,1,16) = ANY (fm.weistauf)102 99 ON lm.gml_id = ANY (fm.weistauf) 103 100 JOIN ax_lagebezeichnungkatalogeintrag sm … … 111 108 FROM ax_flurstueck fo -- FlurstÃŒck OHNE 112 109 JOIN ax_lagebezeichnungohnehausnummer lo -- Lage OHNE 113 --ON substring(lo.gml_id,1,16) = ANY (fo.zeigtauf)114 110 ON lo.gml_id = ANY (fo.zeigtauf) 115 111 JOIN ax_lagebezeichnungkatalogeintrag so -- StraÃe OHNE … … 203 199 ON s.buchungsart = b.wert 204 200 JOIN ax_buchungsblatt gb -- Buchung >istBestandteilVon> Grundbuchblatt 205 --ON substring(gb.gml_id,1,16) = s.istbestandteilvon206 201 ON gb.gml_id = s.istbestandteilvon 207 202 JOIN ax_buchungsblattbezirk z 208 203 ON gb.land=z.land AND gb.bezirk=z.bezirk 209 204 JOIN ax_namensnummer nn -- Blatt <istBestandteilVon< NamNum 210 --ON substring(gb.gml_id,1,16) = nn.istbestandteilvon211 205 ON gb.gml_id = nn.istbestandteilvon 212 206 JOIN ax_person p -- NamNum >benennt> Person 213 --ON substring(p.gml_id,1,16) = nn.benennt214 207 ON p.gml_id = nn.benennt 215 208 LEFT JOIN ax_anschrift a 216 --ON substring(a.gml_id,1,16) = ANY (p.hat)217 209 ON a.gml_id = ANY (p.hat) 218 210 … … 224 216 FROM ax_namensnummer r 225 217 JOIN ax_buchungsblatt gr 226 --ON r.istbestandteilvon = substring(gr.gml_id,1,16)227 218 ON r.istbestandteilvon = gr.gml_id -- Blatt <istBestandteilVon< NamNum (Rechtsgemeinschaft) 228 219 WHERE NOT r.artderrechtsgemeinschaft IS NULL ) AS rg -- Rechtsgemeinschaft … … 308 299 ON s.buchungsart = b.wert 309 300 JOIN ax_buchungsblatt gb -- Buchung >istBestandteilVon> Grundbuchblatt 310 --ON substring(gb.gml_id,1,16) = s.istbestandteilvon311 301 ON gb.gml_id = s.istbestandteilvon 312 302 JOIN ax_buchungsblattbezirk z 313 303 ON gb.land=z.land AND gb.bezirk=z.bezirk 314 304 JOIN ax_namensnummer nn -- Blatt <istBestandteilVon< NamNum 315 --ON substring(gb.gml_id,1,16) = nn.istbestandteilvon316 305 ON gb.gml_id = nn.istbestandteilvon 317 306 JOIN ax_person p -- NamNum >benennt> Person 318 --ON substring(p.gml_id,1,16) = nn.benennt319 307 ON p.gml_id = nn.benennt 320 308 LEFT JOIN ax_anschrift a 321 --ON substring(a.gml_id,1,16) = ANY (p.hat)322 309 ON a.gml_id = ANY (p.hat) 323 310 … … 329 316 FROM ax_namensnummer r 330 317 JOIN ax_buchungsblatt gr 331 --ON r.istbestandteilvon = substring(gr.gml_id,1,16)332 318 ON r.istbestandteilvon = gr.gml_id -- Blatt <istBestandteilVon< NamNum (Rechtsgemeinschaft) 333 319 WHERE NOT r.artderrechtsgemeinschaft IS NULL ) AS rg -- Rechtsgemeinschaft … … 367 353 FROM ax_buchungsblatt gb 368 354 JOIN ax_namensnummer nn 369 --ON substring(gb.gml_id,1,16) = nn.istbestandteilvon370 355 ON gb.gml_id = nn.istbestandteilvon 371 356 WHERE NOT nn.artderrechtsgemeinschaft IS NULL … … 459 444 FROM ax_flurstueck f 460 445 JOIN ap_pto p 461 --ON substring(f.gml_id,1,16) = ANY(p.dientzurdarstellungvon)462 446 ON f.gml_id = ANY(p.dientzurdarstellungvon) 463 447 WHERE f.endet IS NULL AND p.endet IS NULL; … … 473 457 FROM ax_flurstueck f 474 458 LEFT JOIN ap_pto p 475 --ON substring(f.gml_id,1,16) = ANY(p.dientzurdarstellungvon)476 459 ON f.gml_id = ANY(p.dientzurdarstellungvon) 477 460 WHERE p.gml_id IS NULL … … 588 571 l.hausnummer 589 572 FROM ax_flurstueck f 590 --JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16) = ANY (f.weistauf)591 573 JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id = ANY(f.weistauf) 592 574 JOIN ax_gemeinde g ON l.kreis=g.kreis AND l.gemeinde=g.gemeinde … … 651 633 FROM ax_person p 652 634 JOIN ax_namensnummer n -- Namennummer >benennt> Person 653 --ON substring(p.gml_id,1,16) = n.benennt654 635 ON p.gml_id = n.benennt 655 636 JOIN ax_buchungsblatt g -- Namensnummer >istBestandteilVon> Grundbuch 656 --ON n.istbestandteilvon = substring(g.gml_id,1,16)657 637 ON n.istbestandteilvon = g.gml_id 658 638 JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk 659 639 JOIN ax_buchungsstelle s -- Buchungs-Stelle >istBestandteilVon> Grundbuch 660 --ON s.istbestandteilvon = substring(g.gml_id,1,16)661 640 ON s.istbestandteilvon = g.gml_id 662 641 JOIN v_bs_buchungsart art 663 642 ON s.buchungsart = art.wert 664 643 JOIN ax_flurstueck f -- Flurstueck >istGebucht> Buchungs-Stelle 665 --ON f.istgebucht = substring(s.gml_id,1,16)666 644 ON f.istgebucht = s.gml_id 667 645 JOIN ax_gemarkung k … … 717 695 FROM ax_person p 718 696 JOIN ax_namensnummer n -- Namennummer >benennt> Person 719 --ON substring(p.gml_id,1,16) = n.benennt720 697 ON p.gml_id = n.benennt 721 698 JOIN ax_buchungsblatt g -- Namensnummer >istBestandteilVon> Grundbuch 722 --ON n.istBestandteilVon = substring(g.gml_id,1,16)723 699 ON n.istBestandteilVon = g.gml_id 724 700 JOIN ax_buchungsblattbezirk b 725 701 ON g.land = b.land AND g.bezirk = b.bezirk 726 702 JOIN ax_buchungsstelle sh -- B-Stelle herr >istBestandteilVon> Grundbuch 727 --ON sh.istbestandteilvon = substring(g.gml_id,1,16)728 703 ON sh.istbestandteilvon = g.gml_id -- herrschende Buchung 729 704 JOIN v_bs_buchungsart arth 730 705 ON sh.buchungsart = arth.wert 731 706 JOIN ax_buchungsstelle sd -- B-Stelle herr. >an/zu> B-Stelle dien. 732 --ON (substring(sd.gml_id,1,16) = ANY(sh.an) OR substring(sd.gml_id,1,16) = ANY(sh.zu))733 707 ON (sd.gml_id = ANY(sh.an) OR sd.gml_id = ANY(sh.zu)) 734 708 JOIN v_bs_buchungsart artd 735 709 ON sd.buchungsart = artd.wert 736 710 JOIN ax_flurstueck f -- Flurstueck >istGebucht> B-Stelle dien 737 --ON f.istgebucht = substring(sd.gml_id,1,16)738 711 ON f.istgebucht = sd.gml_id 739 712 JOIN ax_gemarkung k … … 759 732 FROM ax_gebaeude g 760 733 JOIN ax_lagebezeichnungmithausnummer l 761 --ON substring(l.gml_id,1,16) = ANY(g.zeigtauf)762 734 ON l.gml_id = ANY(g.zeigtauf) 763 735 WHERE g.endet IS NULL AND l.endet IS NULL … … 776 748 FROM ax_gebaeude g 777 749 JOIN fehler_hausnummer_mehrfach_verwendet f 778 --ON substring(f.gml_id::text, 1, 16) = ANY(g.zeigtauf)779 750 ON f.gml_id = ANY(g.zeigtauf) 780 751 JOIN ax_lagebezeichnungkatalogeintrag k … … 797 768 (SELECT g2.gml_id 798 769 FROM ax_gebaeude g2 799 --JOIN ax_lagebezeichnungmithausnummer l2 ON substring(l2.gml_id,1,16) = ANY(g2.zeigtauf)800 770 JOIN ax_lagebezeichnungmithausnummer l2 ON l2.gml_id = ANY(g2.zeigtauf) 801 771 WHERE g2.endet IS NULL AND l2.endet IS NULL … … 900 870 JOIN ax_lagebezeichnungohnehausnummer o -- Gewanne 901 871 ON k.bezeichnung = o.unverschluesselt -- Gleiche Namen 902 JOIN ax_flurstueck fo -- Flurst. >zeigtAuf> Lage 903 --ON substring(o.gml_id,1,16) = ANY(fo.zeigtauf) 904 ON o.gml_id = ANY(fo.zeigtauf) 872 JOIN ax_flurstueck fo -- Flurst. >zeigtAuf> Lage 873 ON o.gml_id = ANY(fo.zeigtauf) 905 874 WHERE fo.gemeinde = k.gemeinde -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraÃenschlÃŒssel 906 875 AND k.endet IS NULL AND o.endet IS NULL AND fo.endet IS NULL … … 919 888 a1.ort_post, a1.strasse AS strasse1, a2.strasse AS strasse2, a1.hausnummer 920 889 FROM ax_person p 921 --JOIN ax_anschrift a1 ON substring(a1.gml_id,1,16) = ANY(p.hat)922 890 JOIN ax_anschrift a1 ON a1.gml_id = ANY(p.hat) 923 --JOIN ax_anschrift a2 ON substring(a2.gml_id,1,16) = ANY(p.hat)924 891 JOIN ax_anschrift a2 ON a2.gml_id = ANY(p.hat) 925 892 WHERE a1.gml_id <> a2.gml_id … … 933 900 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.'; 934 901 935 936 -- Bevor alle inversen Relationen im Schema auskommentiert werden,937 -- noch mal in die Datenbank schauen, ob nicht doch eine davon gefÃŒllt ist.938 -- Nach dem Entfernen dieser Spalten wird der View nicht mehr funktionieren939 -- und wird darum ebenfalls auskommentiert.940 941 /*942 CREATE OR REPLACE VIEW nicht_gefuellte_inverse_relationen_spalten943 AS944 SELECT 'ax_flurstueck' AS tabelle, 'beziehtsichaufflurstueck' AS spalte,945 count(gml_id) AS anzahl_eintraege946 FROM ax_flurstueck WHERE NOT beziehtsichaufflurstueck IS NULL947 UNION948 SELECT 'ax_flurstueck' AS tabelle, 'gehoertanteiligzu' AS spalte,949 count(gml_id) AS anzahl_eintraege950 FROM ax_flurstueck WHERE NOT gehoertanteiligzu IS NULL951 UNION952 SELECT 'ax_lagebezeichnungohnehausnummer' AS tabelle, 'beschreibt' AS spalte,953 count(gml_id) AS anzahl_eintraege954 FROM ax_lagebezeichnungohnehausnummer WHERE NOT beschreibt IS NULL955 UNION956 SELECT 'ax_lagebezeichnungohnehausnummer' AS tabelle, 'gehoertzu' AS spalte,957 count(gml_id) AS anzahl_eintraege958 FROM ax_lagebezeichnungohnehausnummer WHERE NOT gehoertzu IS NULL959 UNION960 SELECT 'ax_lagebezeichnungmithausnummer' AS tabelle, 'hat' AS spalte,961 count(gml_id) AS anzahl_eintraege962 FROM ax_lagebezeichnungmithausnummer WHERE NOT hat IS NULL963 UNION964 SELECT 'ax_lagebezeichnungmithausnummer' AS tabelle, 'beziehtsichauf' AS spalte,965 count(gml_id) AS anzahl_eintraege966 FROM ax_lagebezeichnungmithausnummer WHERE NOT beziehtsichauf IS NULL967 UNION968 SELECT 'ax_lagebezeichnungmithausnummer' AS tabelle, 'beziehtsichauchauf' AS spalte,969 count(gml_id) AS anzahl_eintraege970 FROM ax_lagebezeichnungmithausnummer WHERE NOT beziehtsichauchauf IS NULL971 UNION972 SELECT 'ax_lagebezeichnungmithausnummer' AS tabelle, 'gehoertzu' AS spalte,973 count(gml_id) AS anzahl_eintraege974 FROM ax_lagebezeichnungmithausnummer WHERE NOT gehoertzu IS NULL975 UNION976 SELECT 'ax_lagebezeichnungmithausnummer' AS tabelle, 'weistzum' AS spalte,977 count(gml_id) AS anzahl_eintraege978 FROM ax_lagebezeichnungmithausnummer WHERE NOT weistzum IS NULL979 UNION980 SELECT 'ax_lagebezeichnungmitpseudonummer' AS tabelle, 'gehoertzu' AS spalte,981 count(gml_id) AS anzahl_eintraege982 FROM ax_lagebezeichnungmitpseudonummer WHERE NOT gehoertzu IS NULL983 --UNION984 -- -- ist gefÃŒllt!985 -- SELECT 'ax_georeferenziertegebaeudeadresse' AS tabelle, 'hatauch' AS spalte,986 -- count(gml_id) AS anzahl_eintraege987 -- FROM ax_georeferenziertegebaeudeadresse WHERE NOT hatauch IS NULL988 UNION989 SELECT 'ax_sicherungspunkt' AS tabelle, 'beziehtsichauf' AS spalte,990 count(gml_id) AS anzahl_eintraege991 FROM ax_sicherungspunkt WHERE NOT beziehtsichauf IS NULL992 UNION993 SELECT 'ax_sicherungspunkt' AS tabelle, 'gehoertzu' AS spalte,994 count(gml_id) AS anzahl_eintraege995 FROM ax_sicherungspunkt WHERE NOT gehoertzu IS NULL996 -- Punktort: ist gefÃŒllt (nicht invers)997 --UNION998 -- SELECT 'ax_punktortag' AS tabelle, 'istteilvon' AS spalte,999 -- count(gml_id) AS anzahl_eintraege1000 -- FROM ax_punktortag WHERE NOT istteilvon IS NULL1001 --UNION1002 -- SELECT 'ax_punktortau' AS tabelle, 'istteilvon' AS spalte,1003 -- count(gml_id) AS anzahl_eintraege1004 -- FROM ax_punktortau WHERE NOT istteilvon IS NULL1005 --UNION1006 -- SELECT 'ax_punktortta' AS tabelle, 'istteilvon' AS spalte,1007 -- count(gml_id) AS anzahl_eintraege1008 -- FROM ax_punktortta WHERE NOT istteilvon IS NULL1009 UNION1010 SELECT 'ax_person' AS tabelle, 'weistauf' AS spalte,1011 count(gml_id) AS anzahl_eintraege1012 FROM ax_person WHERE NOT weistauf IS NULL1013 UNION1014 SELECT 'ax_person' AS tabelle, 'uebtaus' AS spalte,1015 count(gml_id) AS anzahl_eintraege1016 FROM ax_person WHERE NOT uebtaus IS NULL1017 UNION1018 SELECT 'ax_person' AS tabelle, 'besitzt' AS spalte,1019 count(gml_id) AS anzahl_eintraege1020 FROM ax_person WHERE NOT besitzt IS NULL1021 UNION1022 SELECT 'ax_person' AS tabelle, 'zeigtauf' AS spalte,1023 count(gml_id) AS anzahl_eintraege1024 FROM ax_person WHERE NOT zeigtauf IS NULL1025 UNION1026 SELECT 'ax_person' AS tabelle, 'benennt' AS spalte,1027 count(gml_id) AS anzahl_eintraege1028 FROM ax_person WHERE NOT benennt IS NULL1029 UNION1030 SELECT 'ax_anschrift' AS tabelle, 'beziehtsichauf' AS spalte,1031 count(gml_id) AS anzahl_eintraege1032 FROM ax_anschrift WHERE NOT beziehtsichauf IS NULL1033 UNION1034 SELECT 'ax_anschrift' AS tabelle, 'gehoertzu' AS spalte,1035 count(gml_id) AS anzahl_eintraege1036 FROM ax_anschrift WHERE NOT gehoertzu IS NULL1037 UNION1038 SELECT 'ax_verwaltung' AS tabelle, 'beziehtsichauf' AS spalte,1039 count(gml_id) AS anzahl_eintraege1040 FROM ax_verwaltung WHERE NOT beziehtsichauf IS NULL1041 UNION1042 SELECT 'ax_vertretung' AS tabelle, 'vertritt' AS spalte,1043 count(gml_id) AS anzahl_eintraege1044 FROM ax_vertretung WHERE NOT vertritt IS NULL1045 UNION1046 SELECT 'ax_buchungsblatt' AS tabelle, 'bestehtaus' AS spalte,1047 count(gml_id) AS anzahl_eintraege1048 FROM ax_buchungsblatt WHERE NOT bestehtaus IS NULL1049 UNION1050 SELECT 'ax_buchungsstelle' AS tabelle, 'grundstueckbestehtaus' AS spalte,1051 count(gml_id) AS anzahl_eintraege1052 FROM ax_buchungsstelle WHERE NOT grundstueckbestehtaus IS NULL1053 UNION1054 SELECT 'ax_gebaeude' AS tabelle, 'haengtzusammenmit' AS spalte,1055 count(gml_id) AS anzahl_eintraege1056 FROM ax_gebaeude WHERE NOT haengtzusammenmit IS NULL1057 ;1058 1059 COMMENT ON VIEW nicht_gefuellte_relationen_spalten1060 IS 'ÃberprÃŒfung auf nicht gefÃŒllte Inverse Relationen.1061 Funktioniert nur, solange diese nicht entfernt wurden.';1062 1063 */1064 1065 -- Daraus resultiert der folgende Patch fÃŒr bereits angelegte Datenbanken:1066 /*1067 ALTER TABLE ax_flurstueck DROP COLUMN beziehtsichaufflurstueck;1068 ALTER TABLE ax_flurstueck DROP COLUMN gehoertanteiligzu;1069 ALTER TABLE ax_lagebezeichnungohnehausnummer DROP COLUMN beschreibt;1070 ALTER TABLE ax_lagebezeichnungohnehausnummer DROP COLUMN gehoertzu;1071 ALTER TABLE ax_lagebezeichnungmithausnummer DROP COLUMN hat;1072 ALTER TABLE ax_lagebezeichnungmithausnummer DROP COLUMN beziehtsichauf;1073 ALTER TABLE ax_lagebezeichnungmithausnummer DROP COLUMN beziehtsichauchauf;1074 ALTER TABLE ax_lagebezeichnungmithausnummer DROP COLUMN gehoertzu;1075 ALTER TABLE ax_lagebezeichnungmithausnummer DROP COLUMN weistzum;1076 ALTER TABLE ax_lagebezeichnungmitpseudonummer DROP COLUMN gehoertzu;1077 ALTER TABLE ax_sicherungspunkt DROP COLUMN beziehtsichauf;1078 ALTER TABLE ax_sicherungspunkt DROP COLUMN gehoertzu;1079 ALTER TABLE ax_person DROP COLUMN weistauf;1080 ALTER TABLE ax_person DROP COLUMN uebtaus;1081 ALTER TABLE ax_person DROP COLUMN besitzt;1082 ALTER TABLE ax_person DROP COLUMN zeigtauf;1083 ALTER TABLE ax_person DROP COLUMN benennt;1084 ALTER TABLE ax_anschrift DROP COLUMN beziehtsichauf;1085 ALTER TABLE ax_anschrift DROP COLUMN gehoertzu;1086 ALTER TABLE ax_verwaltung DROP COLUMN beziehtsichauf;1087 ALTER TABLE ax_vertretung DROP COLUMN vertritt;1088 ALTER TABLE ax_buchungsblatt DROP COLUMN bestehtaus;1089 ALTER TABLE ax_buchungsstelle DROP COLUMN grundstueckbestehtaus;1090 ALTER TABLE ax_gebaeude DROP COLUMN haengtzusammenmit;1091 */1092 1093 902 -- Anteile der Namensnummern am Blatt aufsummieren. 1094 903 -- BlÀtter mit RechtsverhÀltnis (Beschrieb) nicht beachten. … … 1107 916 FROM ax_buchungsblatt g 1108 917 JOIN ax_namensnummer n 1109 --ON substring(g.gml_id,1,16) = n.istbestandteilvon1110 918 ON g.gml_id = n.istbestandteilvon 1111 919 WHERE g.endet IS NULL AND n.endet IS NULL … … 1115 923 SELECT gml_id 1116 924 FROM ax_namensnummer nr 1117 --ERE substring(g.gml_id,1,16) = nr.istbestandteilvon1118 925 WHERE g.gml_id = nr.istbestandteilvon 1119 926 AND NOT nr.artderrechtsgemeinschaft IS NULL … … 1212 1019 IS 'Suche nach GB-Blatt mit vielen FlurstÃŒcken.'; 1213 1020 1021 1022 -- Ein typischer Fehler im NBA-Verfahren erzeugt SekundÀrbestÀnde, bei denen EigentÃŒmer fehlen. 1023 -- Dies kommt so zustande: 1024 -- - FlurstÃŒck und Person sind zum Zeitpunkt der Erstabgabe im Katasterbezirk bereits vorhanden. 1025 -- - Die FlurstÃŒcke werden auf Stadtgebiet gefiltert. 1026 -- - Die Person hat keine Verbindung zu einem FlurstÃŒck im Ausschnitt und wird nicht mit ausgeliefert. 1027 -- - SpÀter wird eine neue Relation zwischen FS--Buchung--GBBlatt--Namensnummer--Person gebildet. 1028 -- - Die Relation wird abgegeben (gml_id der ax_person) in "ax_namensnummer.benennt" 1029 -- - Aber die Person fehlt im SekundÀrbestand, sie wurde nicht nachgeliefert. 1030 -- Solche FÀlle sollen hier gezielt gefunden werden: 1031 1032 -- DROP VIEW fehlersuche_nba_person_mit_fs; 1033 CREATE OR REPLACE VIEW fehlersuche_nba_person_mit_fs 1034 AS 1035 SELECT 1036 -- FlurstÃŒck 1037 f.gml_id AS fsgml, 1038 --f.flurstueckskennzeichen, 1039 f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler || 1040 coalesce('/' || f.nenner, '') AS fs_kennz, 1041 -- Grundbuch 1042 gb.gml_id AS gbgml, 1043 gb.bezirk || '-' || gb.buchungsblattnummermitbuchstabenerweiterung AS gb_kennz, 1044 -- Buchungsstelle (GrundstÃŒck) 1045 s.laufendenummer AS bu_lfd, -- BVNR 1046 -- NamensNummer (Normalfall mit Person) 1047 nn.laufendenummernachdin1421 AS nam_lfd, 1048 -- Person 1049 nn.benennt AS fehlende_person_gmlid 1050 --p.gml_id AS psgml, 1051 --p.vorname, p.nachnameoderfirma, 1052 FROM ax_flurstueck f -- FlurstÃŒck 1053 JOIN doppelverbindung d -- beide FÀlle ÃŒber Union-View: direkt und ÃŒber Recht von Buchung an Buchung 1054 ON d.fsgml = f.gml_id 1055 JOIN ax_buchungsstelle s -- Buchungs-Stelle 1056 ON d.bsgml = s.gml_id 1057 JOIN ax_buchungsblatt gb -- Buchung >istBestandteilVon> Grundbuchblatt 1058 ON gb.gml_id = s.istbestandteilvon 1059 JOIN ax_namensnummer nn -- Blatt <istBestandteilVon< NamNum 1060 ON gb.gml_id = nn.istbestandteilvon 1061 LEFT JOIN ax_person p -- NamNum >benennt> Person 1062 ON p.gml_id = nn.benennt 1063 LEFT JOIN ax_anschrift a 1064 ON a.gml_id = ANY (p.hat) 1065 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 1066 AND nn.artderrechtsgemeinschaft IS NULL -- Sonderzeilen ausblenden 1067 AND p.gml_id IS NULL -- Hier sollte eine Person vorhanden sein!! 1068 ORDER BY f.flurstueckskennzeichen, 1069 gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer, 1070 nn.laufendenummernachdin1421; 1071 1072 COMMENT ON VIEW fehlersuche_nba_person_mit_fs 1073 IS 'Suche nach typischem Fehler "Person fehlt" nach einer NBA-Aktualisierung mit geometrischen Filter. Mit FlurstÃŒcken.'; 1074 1075 -- Durch den JOIN auf FlurstÃŒcke werden Personen-FÀlle ggf. mehrfach aufgefÃŒhrt. 1076 -- Um schneller die Ãbersicht ÃŒber die *Anzahl* zu bekommen, lÀsst man die FS besser weg. 1077 1078 -- DROP VIEW fehlersuche_nba_person; 1079 CREATE OR REPLACE VIEW fehlersuche_nba_person 1080 AS 1081 SELECT 1082 gb.gml_id AS gbgml, 1083 gb.bezirk || '-' || gb.buchungsblattnummermitbuchstabenerweiterung AS gb_kennz, 1084 nn.laufendenummernachdin1421 AS nam_lfd, 1085 nn.benennt AS fehlende_person_gmlid 1086 FROM ax_buchungsblatt gb 1087 JOIN ax_namensnummer nn -- Blatt <istBestandteilVon< NamNum 1088 ON gb.gml_id = nn.istbestandteilvon 1089 LEFT JOIN ax_person p -- NamNum >benennt> Person 1090 ON p.gml_id = nn.benennt 1091 WHERE gb.endet IS NULL AND nn.endet IS NULL AND p.endet IS NULL 1092 AND nn.artderrechtsgemeinschaft IS NULL -- Sonderzeilen ausblenden 1093 AND p.gml_id IS NULL -- Hier sollte eine Person vorhanden sein!! 1094 ORDER BY gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, nn.laufendenummernachdin1421; 1095 1096 COMMENT ON VIEW fehlersuche_nba_person 1097 IS 'Suche nach typischem Fehler "Person fehlt" nach einer NBA-Aktualisierung mit geometrischen Filter. OHNE FlurstÃŒcke.'; 1098 1099 1100 -- In der SQLite-Version der Datenbank sind die Relationen "hat" und "benennt" nicht gefÃŒllt. 1101 -- Darum ÃŒber die zentrale Beziehungen-Tabelle gehen! 1102 CREATE OR REPLACE VIEW fehlersuche_nba_person_old_Style 1103 AS 1104 SELECT 1105 gb.gml_id AS gbgml, 1106 gb.bezirk || '-' || gb.buchungsblattnummermitbuchstabenerweiterung AS gb_kennz, 1107 nn.laufendenummernachdin1421 AS nam_lfd, 1108 a2.beziehung_zu AS fehlende_person_gmlid 1109 FROM ax_buchungsblatt gb 1110 JOIN alkis_beziehungen a1 ON a1.beziehung_zu=gb.gml_id AND a1.beziehungsart='istBestandteilVon' 1111 JOIN ax_namensnummer nn ON a1.beziehung_von=nn.gml_id 1112 JOIN alkis_beziehungen a2 ON a2.beziehung_von=nn.gml_id AND a2.beziehungsart='benennt' 1113 LEFT JOIN ax_person p ON a2.beziehung_zu=p.gml_id 1114 WHERE gb.endet IS NULL AND nn.endet IS NULL AND p.endet IS NULL 1115 AND nn.artderrechtsgemeinschaft IS NULL AND p.gml_id IS NULL 1116 ORDER BY gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, nn.laufendenummernachdin1421; 1117 1118 COMMENT ON VIEW fehlersuche_nba_person_old_Style 1119 IS 'Suche nach typischem Fehler "Person fehlt" nach einer NBA-Aktualisierung mit geometrischen Filter. Relation ÃŒber alkis_beziehungen, dann klappt das auch in SQLite.'; 1120 1214 1121 -- END --
Note: See TracChangeset
for help on using the changeset viewer.