Changeset 339 for trunk/import/sichten.sql
- Timestamp:
- 09/30/14 16:42:55 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/import/sichten.sql
r338 r339 35 35 -- 2014-09-17 View "fehler_gebaeude_zu_mehrfach_hsnr" 36 36 -- 2014-09-22 Views zur Suche von Fehlern aus einem fehlerhaften Historie-Trigger (beginnt-endet-Paarungen) 37 -- 2014-09-29 substring(gml_id,1,16) wieder entfernen, gml_id ist im Schema nun wieder fixe 16 Zeichen lang. 38 -- 2014-09-30 Umbenennung SchlÃŒsseltabellen (Prefix) 37 39 38 40 … … 60 62 0 AS ba_dien 61 63 FROM ax_flurstueck f1 62 JOIN ax_buchungsstelle b1 ON f1.istgebucht = substring(b1.gml_id,1,16) 64 --JOIN ax_buchungsstelle b1 ON f1.istgebucht = substring(b1.gml_id,1,16) 65 JOIN ax_buchungsstelle b1 ON f1.istgebucht = b1.gml_id 63 66 UNION 64 67 -- FS >istGebucht> Buchungstelle <an< Buchungstelle … … 67 70 dien.buchungsart AS ba_dien -- Ein Feld aus der Zwischen-Buchung zur Fall-Unterscheidung 68 71 FROM ax_flurstueck f2 69 JOIN ax_buchungsstelle dien ON f2.istgebucht = substring(dien.gml_id,1,16) 70 JOIN ax_buchungsstelle b2 ON substring(dien.gml_id,1,16) = ANY (b2.an) -- auch "zu" ? 72 --JOIN ax_buchungsstelle dien ON f2.istgebucht = substring(dien.gml_id,1,16) 73 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 JOIN ax_buchungsstelle b2 ON dien.gml_id = ANY (b2.an) -- auch "zu" ? 71 76 WHERE dien.endet IS NULL; -- FÃŒr das zusÀtzliche Verbindungselement die Historie HIER ausschlieÃen, 72 77 -- FÃŒr andere Tabellen muss dies in dem View erfolgen, der dies verwendet. … … 94 99 FROM ax_flurstueck fm -- FlurstÃŒck Mit 95 100 JOIN ax_lagebezeichnungmithausnummer lm -- Lage MIT 96 ON substring(lm.gml_id,1,16) = ANY (fm.weistauf) 101 --ON substring(lm.gml_id,1,16) = ANY (fm.weistauf) 102 ON lm.gml_id = ANY (fm.weistauf) 97 103 JOIN ax_lagebezeichnungkatalogeintrag sm 98 104 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 … … 105 111 FROM ax_flurstueck fo -- FlurstÃŒck OHNE 106 112 JOIN ax_lagebezeichnungohnehausnummer lo -- Lage OHNE 107 ON substring(lo.gml_id,1,16) = ANY (fo.zeigtauf) 113 --ON substring(lo.gml_id,1,16) = ANY (fo.zeigtauf) 114 ON lo.gml_id = ANY (fo.zeigtauf) 108 115 JOIN ax_lagebezeichnungkatalogeintrag so -- StraÃe OHNE 109 116 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 … … 193 200 JOIN ax_buchungsstelle s -- Buchungs-Stelle 194 201 ON d.bsgml = s.gml_id 195 JOIN ax_buchungsstelle_buchungsart b -- EnstschlÃŒsselung der Buchungsart202 JOIN v_bs_buchungsart b -- EnstschlÃŒsselung der Buchungsart 196 203 ON s.buchungsart = b.wert 197 204 JOIN ax_buchungsblatt gb -- Buchung >istBestandteilVon> Grundbuchblatt 198 ON substring(gb.gml_id,1,16) = s.istbestandteilvon 205 --ON substring(gb.gml_id,1,16) = s.istbestandteilvon 206 ON gb.gml_id = s.istbestandteilvon 199 207 JOIN ax_buchungsblattbezirk z 200 208 ON gb.land=z.land AND gb.bezirk=z.bezirk 201 209 JOIN ax_namensnummer nn -- Blatt <istBestandteilVon< NamNum 202 ON substring(gb.gml_id,1,16) = nn.istbestandteilvon 210 --ON substring(gb.gml_id,1,16) = nn.istbestandteilvon 211 ON gb.gml_id = nn.istbestandteilvon 203 212 JOIN ax_person p -- NamNum >benennt> Person 204 ON substring(p.gml_id,1,16) = nn.benennt 213 --ON substring(p.gml_id,1,16) = nn.benennt 214 ON p.gml_id = nn.benennt 205 215 LEFT JOIN ax_anschrift a 206 ON substring(a.gml_id,1,16) = ANY (p.hat) 216 --ON substring(a.gml_id,1,16) = ANY (p.hat) 217 ON a.gml_id = ANY (p.hat) 207 218 208 219 -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery in Spalten packen: … … 213 224 FROM ax_namensnummer r 214 225 JOIN ax_buchungsblatt gr 215 ON r.istbestandteilvon = substring(gr.gml_id,1,16) -- Blatt <istBestandteilVon< NamNum (Rechtsgemeinschaft) 226 --ON r.istbestandteilvon = substring(gr.gml_id,1,16) 227 ON r.istbestandteilvon = gr.gml_id -- Blatt <istBestandteilVon< NamNum (Rechtsgemeinschaft) 216 228 WHERE NOT r.artderrechtsgemeinschaft IS NULL ) AS rg -- Rechtsgemeinschaft 217 229 ON rg.gml_id = gb.gml_id -- zum GB … … 293 305 JOIN ax_buchungsstelle s -- Buchungs-Stelle 294 306 ON d.bsgml = s.gml_id 295 JOIN ax_buchungsstelle_buchungsart b -- EnstschlÃŒsselung der Buchungsart307 JOIN v_bs_buchungsart b -- EnstschlÃŒsselung der Buchungsart 296 308 ON s.buchungsart = b.wert 297 309 JOIN ax_buchungsblatt gb -- Buchung >istBestandteilVon> Grundbuchblatt 298 ON substring(gb.gml_id,1,16) = s.istbestandteilvon 310 --ON substring(gb.gml_id,1,16) = s.istbestandteilvon 311 ON gb.gml_id = s.istbestandteilvon 299 312 JOIN ax_buchungsblattbezirk z 300 313 ON gb.land=z.land AND gb.bezirk=z.bezirk 301 314 JOIN ax_namensnummer nn -- Blatt <istBestandteilVon< NamNum 302 ON substring(gb.gml_id,1,16) = nn.istbestandteilvon 315 --ON substring(gb.gml_id,1,16) = nn.istbestandteilvon 316 ON gb.gml_id = nn.istbestandteilvon 303 317 JOIN ax_person p -- NamNum >benennt> Person 304 ON substring(p.gml_id,1,16) = nn.benennt 318 --ON substring(p.gml_id,1,16) = nn.benennt 319 ON p.gml_id = nn.benennt 305 320 LEFT JOIN ax_anschrift a 306 ON substring(a.gml_id,1,16) = ANY (p.hat) 321 --ON substring(a.gml_id,1,16) = ANY (p.hat) 322 ON a.gml_id = ANY (p.hat) 307 323 308 324 -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery in Spalten packen: … … 313 329 FROM ax_namensnummer r 314 330 JOIN ax_buchungsblatt gr 315 ON r.istbestandteilvon = substring(gr.gml_id,1,16) -- Blatt <istBestandteilVon< NamNum (Rechtsgemeinschaft) 331 --ON r.istbestandteilvon = substring(gr.gml_id,1,16) 332 ON r.istbestandteilvon = gr.gml_id -- Blatt <istBestandteilVon< NamNum (Rechtsgemeinschaft) 316 333 WHERE NOT r.artderrechtsgemeinschaft IS NULL ) AS rg -- Rechtsgemeinschaft 317 334 ON rg.gml_id = gb.gml_id -- zum GB … … 349 366 nn.beschriebderrechtsgemeinschaft 350 367 FROM ax_buchungsblatt gb 351 JOIN ax_namensnummer nn ON substring(gb.gml_id,1,16) = nn.istbestandteilvon 368 JOIN ax_namensnummer nn 369 --ON substring(gb.gml_id,1,16) = nn.istbestandteilvon 370 ON gb.gml_id = nn.istbestandteilvon 352 371 WHERE NOT nn.artderrechtsgemeinschaft IS NULL 353 372 AND gb.endet IS NULL AND nn.endet IS NULL -- Historie weglassen … … 439 458 f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS such -- Suchstring fÃŒr ALKIS-Navigation nach FS-Kennzeichen 440 459 FROM ax_flurstueck f 441 JOIN ap_pto p ON substring(f.gml_id,1,16) = ANY(p.dientzurdarstellungvon) 460 JOIN ap_pto p 461 --ON substring(f.gml_id,1,16) = ANY(p.dientzurdarstellungvon) 462 ON f.gml_id = ANY(p.dientzurdarstellungvon) 442 463 WHERE f.endet IS NULL AND p.endet IS NULL; 443 464 -- TIPP: mit zusÀtzlichem LIMIT auftrufen! … … 451 472 f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS such -- Suchstring fÃŒr ALKIS-Navigation nach FS-Kennzeichen 452 473 FROM ax_flurstueck f 453 LEFT JOIN ap_pto p ON substring(f.gml_id,1,16) = ANY(p.dientzurdarstellungvon) 474 LEFT JOIN ap_pto p 475 --ON substring(f.gml_id,1,16) = ANY(p.dientzurdarstellungvon) 476 ON f.gml_id = ANY(p.dientzurdarstellungvon) 454 477 WHERE p.gml_id IS NULL 455 478 AND f.endet IS NULL; … … 497 520 -- , d.stellenart -- weiter entschluesseln? 498 521 FROM ax_bauraumoderbodenordnungsrecht r 499 LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegunga522 LEFT JOIN v_baurecht_adf a 500 523 ON r.artderfestlegung = a.wert 501 524 LEFT JOIN ax_dienststelle d … … 565 588 l.hausnummer 566 589 FROM ax_flurstueck f 567 JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16) = ANY (f.weistauf) 590 --JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16) = ANY (f.weistauf) 591 JOIN ax_lagebezeichnungmithausnummer l ON l.gml_id = ANY(f.weistauf) 568 592 JOIN ax_gemeinde g ON l.kreis=g.kreis AND l.gemeinde=g.gemeinde 569 593 JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage = s.lage … … 627 651 FROM ax_person p 628 652 JOIN ax_namensnummer n -- Namennummer >benennt> Person 629 ON substring(p.gml_id,1,16) = n.benennt 653 --ON substring(p.gml_id,1,16) = n.benennt 654 ON p.gml_id = n.benennt 630 655 JOIN ax_buchungsblatt g -- Namensnummer >istBestandteilVon> Grundbuch 631 ON n.istbestandteilvon = substring(g.gml_id,1,16) 656 --ON n.istbestandteilvon = substring(g.gml_id,1,16) 657 ON n.istbestandteilvon = g.gml_id 632 658 JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk 633 659 JOIN ax_buchungsstelle s -- Buchungs-Stelle >istBestandteilVon> Grundbuch 634 ON s.istbestandteilvon = substring(g.gml_id,1,16) 635 JOIN ax_buchungsstelle_buchungsart art 660 --ON s.istbestandteilvon = substring(g.gml_id,1,16) 661 ON s.istbestandteilvon = g.gml_id 662 JOIN v_bs_buchungsart art 636 663 ON s.buchungsart = art.wert 637 664 JOIN ax_flurstueck f -- Flurstueck >istGebucht> Buchungs-Stelle 638 ON f.istgebucht = substring(s.gml_id,1,16) 665 --ON f.istgebucht = substring(s.gml_id,1,16) 666 ON f.istgebucht = s.gml_id 639 667 JOIN ax_gemarkung k 640 668 ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer … … 689 717 FROM ax_person p 690 718 JOIN ax_namensnummer n -- Namennummer >benennt> Person 691 ON substring(p.gml_id,1,16) = n.benennt 719 --ON substring(p.gml_id,1,16) = n.benennt 720 ON p.gml_id = n.benennt 692 721 JOIN ax_buchungsblatt g -- Namensnummer >istBestandteilVon> Grundbuch 693 ON n.istBestandteilVon = substring(g.gml_id,1,16) 722 --ON n.istBestandteilVon = substring(g.gml_id,1,16) 723 ON n.istBestandteilVon = g.gml_id 694 724 JOIN ax_buchungsblattbezirk b 695 725 ON g.land = b.land AND g.bezirk = b.bezirk 696 726 JOIN ax_buchungsstelle sh -- B-Stelle herr >istBestandteilVon> Grundbuch 697 ON sh.istbestandteilvon = substring(g.gml_id,1,16) -- herrschende Buchung 698 JOIN ax_buchungsstelle_buchungsart arth 727 --ON sh.istbestandteilvon = substring(g.gml_id,1,16) 728 ON sh.istbestandteilvon = g.gml_id -- herrschende Buchung 729 JOIN v_bs_buchungsart arth 699 730 ON sh.buchungsart = arth.wert 700 731 JOIN ax_buchungsstelle sd -- B-Stelle herr. >an/zu> B-Stelle dien. 701 ON (substring(sd.gml_id,1,16) = ANY(sh.an) OR substring(sd.gml_id,1,16) = ANY(sh.zu)) 702 JOIN ax_buchungsstelle_buchungsart artd 732 --ON (substring(sd.gml_id,1,16) = ANY(sh.an) OR substring(sd.gml_id,1,16) = ANY(sh.zu)) 733 ON (sd.gml_id = ANY(sh.an) OR sd.gml_id = ANY(sh.zu)) 734 JOIN v_bs_buchungsart artd 703 735 ON sd.buchungsart = artd.wert 704 736 JOIN ax_flurstueck f -- Flurstueck >istGebucht> B-Stelle dien 705 ON f.istgebucht = substring(sd.gml_id,1,16) 737 --ON f.istgebucht = substring(sd.gml_id,1,16) 738 ON f.istgebucht = sd.gml_id 706 739 JOIN ax_gemarkung k 707 740 ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer … … 726 759 FROM ax_gebaeude g 727 760 JOIN ax_lagebezeichnungmithausnummer l 728 ON substring(l.gml_id,1,16) = ANY(g.zeigtauf) 761 --ON substring(l.gml_id,1,16) = ANY(g.zeigtauf) 762 ON l.gml_id = ANY(g.zeigtauf) 729 763 WHERE g.endet IS NULL AND l.endet IS NULL 730 764 GROUP BY l.gml_id, l.gemeinde, l.lage, l.hausnummer … … 742 776 FROM ax_gebaeude g 743 777 JOIN fehler_hausnummer_mehrfach_verwendet f 744 ON substring(f.gml_id::text, 1, 16) = ANY (g.zeigtauf) 778 --ON substring(f.gml_id::text, 1, 16) = ANY(g.zeigtauf) 779 ON f.gml_id = ANY(g.zeigtauf) 745 780 JOIN ax_lagebezeichnungkatalogeintrag k 746 781 ON f.gemeinde=k.gemeinde AND f.lage=k.lage … … 762 797 (SELECT g2.gml_id 763 798 FROM ax_gebaeude g2 764 JOIN ax_lagebezeichnungmithausnummer l2 ON substring(l2.gml_id,1,16) = ANY(g2.zeigtauf) 799 --JOIN ax_lagebezeichnungmithausnummer l2 ON substring(l2.gml_id,1,16) = ANY(g2.zeigtauf) 800 JOIN ax_lagebezeichnungmithausnummer l2 ON l2.gml_id = ANY(g2.zeigtauf) 765 801 WHERE g2.endet IS NULL AND l2.endet IS NULL 766 802 GROUP BY g2.gml_id … … 777 813 SELECT a.wert, a.bezeichner, 778 814 count(b.gml_id) AS anzahl_buchungen 779 FROM ax_buchungsstelle_buchungsart a815 FROM v_bs_buchungsart a 780 816 JOIN ax_buchungsstelle b ON a.wert = b.buchungsart 781 817 WHERE b.endet IS NULL … … 845 881 ON k.bezeichnung = o.unverschluesselt -- Gleiche Namen 846 882 JOIN ax_flurstueck fo -- Flurst. >zeigtAuf> Lage 847 ON substring(o.gml_id,1,16) = ANY(fo.zeigtauf) 883 --ON substring(o.gml_id,1,16) = ANY(fo.zeigtauf) 884 ON o.gml_id = ANY(fo.zeigtauf) 848 885 WHERE fo.gemeinde = k.gemeinde -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraÃenschlÃŒssel 849 886 AND k.endet IS NULL AND o.endet IS NULL AND fo.endet IS NULL … … 862 899 a1.ort_post, a1.strasse AS strasse1, a2.strasse AS strasse2, a1.hausnummer 863 900 FROM ax_person p 864 JOIN ax_anschrift a1 ON substring(a1.gml_id,1,16) = ANY(p.hat) 865 JOIN ax_anschrift a2 ON substring(a2.gml_id,1,16) = ANY(p.hat) 901 --JOIN ax_anschrift a1 ON substring(a1.gml_id,1,16) = ANY(p.hat) 902 JOIN ax_anschrift a1 ON a1.gml_id = ANY(p.hat) 903 --JOIN ax_anschrift a2 ON substring(a2.gml_id,1,16) = ANY(p.hat) 904 JOIN ax_anschrift a2 ON a2.gml_id = ANY(p.hat) 866 905 WHERE a1.gml_id <> a2.gml_id 867 AND a1.ort_post = 906 AND a1.ort_post = a2.ort_post 868 907 AND a1.strasse like trim(a2.strasse, '.') || '%' 869 908 AND a1.hausnummer = a2.hausnummer … … 1047 1086 sum(coalesce(n.zaehler/n.nenner, 1.0))::double precision AS summe_der_anteile 1048 1087 FROM ax_buchungsblatt g 1049 JOIN ax_namensnummer n ON substring(g.gml_id,1,16) = n.istbestandteilvon 1088 JOIN ax_namensnummer n 1089 --ON substring(g.gml_id,1,16) = n.istbestandteilvon 1090 ON g.gml_id = n.istbestandteilvon 1050 1091 WHERE g.endet IS NULL AND n.endet IS NULL 1051 1092 GROUP BY g.gml_id, g.bezirk || '-' || g.buchungsblattnummermitbuchstabenerweiterung … … 1054 1095 SELECT gml_id 1055 1096 FROM ax_namensnummer nr 1056 WHERE substring(g.gml_id,1,16) = nr.istbestandteilvon 1097 --ERE substring(g.gml_id,1,16) = nr.istbestandteilvon 1098 WHERE g.gml_id = nr.istbestandteilvon 1057 1099 AND NOT nr.artderrechtsgemeinschaft IS NULL 1058 1100 AND nr.endet IS NULL … … 1071 1113 -- Siehe auch: FUNCTION "alkis_hist_check()" in Datei "alkis-functions.sql" 1072 1114 1115 -- Spaltenformat kann nicht geÀndert werden, löschen und neu anlegen. 1116 DROP VIEW fehlersuche_hist_beginnt_endet_mischmasch; 1117 DROP VIEW fehlersuche_hist_endet_sortierung_fs; 1118 DROP VIEW hist_mehrere_vorgaenger_fs; 1119 1073 1120 -- Erst mal die betroffenen Objekte identifizieren 1074 1121 CREATE OR REPLACE VIEW hist_mehrere_vorgaenger_fs 1075 1122 AS 1076 SELECT substring(gml_id,1,16) AS gml, count(beginnt) AS anzahl -- 16stellige kurze ID, oder Substring1123 SELECT gml_id AS gml, count(beginnt) AS anzahl -- 16stellige ID 1077 1124 FROM ax_flurstueck 1078 GROUP BY substring(gml_id,1,16)1125 GROUP BY gml_id 1079 1126 HAVING count(beginnt) > 4 -- mindestens 3 Generationen zur PrÃŒfung notwendig 1080 1127 ORDER BY count(beginnt) DESC -- die hÀufigsten zuerst … … 1092 1139 CREATE OR REPLACE VIEW fehlersuche_hist_endet_sortierung_fs 1093 1140 AS 1094 SELECT substring(gml_id,1,16)AS gml, ogc_fid, beginnt, endet1141 SELECT gml_id AS gml, ogc_fid, beginnt, endet 1095 1142 FROM ax_flurstueck f 1096 1143 JOIN hist_mehrere_vorgaenger_fs v -- der vorhergehende View als Filter 1097 ON substring(f.gml_id,1,16)= v.gml1098 ORDER BY substring(gml_id,1,16), ogc_fid;1144 ON f.gml_id = v.gml 1145 ORDER BY gml_id, ogc_fid; 1099 1146 1100 1147 COMMENT ON VIEW fehlersuche_hist_endet_sortierung_fs … … 1107 1154 CREATE OR REPLACE VIEW fehlersuche_hist_beginnt_endet_mischmasch 1108 1155 AS 1109 SELECT substring(v1.gml_id,1,16)AS gml,1156 SELECT v1.gml_id AS gml, 1110 1157 v1.beginnt AS v1_beginnt, 1111 1158 v2.beginnt AS v2_beginnt, … … 1114 1161 FROM ax_gebaeude v1 -- Version 1 -- oder eine andere Objekt-Tabelle 1115 1162 JOIN ax_gebaeude v2 -- Version 2 1116 ON substring(v1.gml_id,1,16) = substring(v2.gml_id,1,16)-- gleiches Objekt1163 ON v1.gml_id = v2.gml_id -- gleiches Objekt 1117 1164 AND v2.beginnt > v1.beginnt -- aufsteigendes Beginn-Datum 1118 1165 AND v2.endet < v1.endet -- aber absteigendes endet-Datum - Fehler! 1119 ORDER BY substring(v1.gml_id,1,16), v1.beginnt, v1.endet1166 ORDER BY v1.gml_id, v1.beginnt, v1.endet 1120 1167 LIMIT 10; -- Beispiele als Beweis der Fehlerhaftigkeit 1121 1168
Note: See TracChangeset
for help on using the changeset viewer.