Changeset 301 for trunk/import


Ignore:
Timestamp:
01/17/14 09:51:00 (10 years ago)
Author:
frank.jaeger
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/import/sichten.sql

    r298 r301  
    88 
    99--  Dieses SQL braucht nur bei Bedarf in einer PostNAS-DB verarbeitet werden. 
    10 --  Es werden zusÀtzliche Views einegerichtet, die nur bei Fehlersuche und Analys (vom Entwickler) benötigt werden. 
     10--  Es werden zusÀtzliche Views eingerichtet, die nur bei Fehlersuche und Analyse (vom Entwickler) benötigt werden. 
    1111 
    1212--  PostNAS 0.7 
     
    2323--  2013-10-23 Fehlersuche GebÀude-Hausnummer-Relation 
    2424--  2013-11-26 Neue Views (doppelverbindung) 
     25--  2014-01-17 View "exp_csv" fÃŒr den Export von CSV-Daten aus der Auskunft mit Modul alkisexport.php. 
    2526 
    2627 
     
    6667 IS 'ALKIS-Beziehung von FlurstÃŒck zu Buchung. UNION-Zusammenfassung des einfachen Falls mit direkter Buchung und des Falles mit Recht einer Buchungsstelle an einer anderen Buchungsstelle.'; 
    6768 
    68 -- Ende "Bausteine" 
    69  
    70  
    7169-- Test-Ausgabe: Ein paar FÀlle mit "Recht an" 
    7270--   SELECT * FROM doppelverbindung WHERE ba_dien > 0 LIMIT 20; 
     71 
     72-- Ende "Bausteine" 
     73 
     74 
     75 
     76-- Generelle Export-Struktur FlurstÃŒck - Buchung - Grundbuch - Person 
     77-- ------------------------------------------------------------------ 
     78-- Verwendet den gespeicherten View "doppelverbindung". 
     79-- Wird benötigt im Auskunft-Modul "alkisexport.php": 
     80-- Je nach aufrufendem Modul wird der Filter (WHERE) an anderer Stelle gesetzt (gml_id von FS, GB oder Pers.) 
     81 
     82-- Problem / Konflikt: 
     83-- Es kann nur eine lineare Struktur aus Spalten und Zeilen exportiert werden.  
     84-- Wenn nicht nur die Daten des Ausgangs-Objektes exportiert werden, sondern auch verbundene Tabellen in  
     85-- einer 1:N-Struktur, dann verdoppeln sich Zeileninhalte und es werden redundante Daten erzeugt.  
     86-- Diese Redundanzen mÃŒssen vom dem Programm gefiltert werden, das die Daten ÃŒber eine Schnittstelle einliest. 
     87 
     88-- Anwendungs-Beispiel: Abrechnung von AnliegerbeitrÀgen. 
     89 
     90--           DROP VIEW exp_csv; 
     91CREATE OR REPLACE VIEW exp_csv 
     92AS 
     93 SELECT 
     94  -- ** FlurstÃŒck 
     95     f.gml_id AS fsgml,                                   -- möglicher Filter FlurstÃŒcks-GML-ID 
     96     f.flurstueckskennzeichen             AS fs_kennz, 
     97     f.gemarkungsnummer,                                  -- Teile des FS-Kennz. noch mal einzeln 
     98     f.flurnummer, f.zaehler, f.nenner,  
     99     f.amtlicheflaeche                    AS fs_flae, 
     100 
     101   -- * Adressen des FS -- Nein, diese werden im Export-Modul ermitteln und nachtragen 
     102 --  k.bezeichnung                          AS strasse,   -- Straßennamen 
     103 --  split_part(l.hausnummer,' ',1)         AS hausnr,    -- Nummer 
     104 --  upper(split_part(l.hausnummer,' ',2))  AS hausnr_zs, -- Zusatz in Großschreibung 
     105 
     106  -- ** Grundbuch 
     107     gb.gml_id                            AS gbgml,       -- möglicher Filter Grundbuch-GML-ID 
     108     gb.bezirk                            AS gb_bezirk, 
     109     gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 
     110 
     111 -- ** Buchung 
     112     s.laufendenummer                     AS bu_lfd, 
     113   -- s.zaehler, s.nenner,                                -- Anteil des GB am FS 
     114     '=' || s.zaehler|| '/' || s.nenner   AS bu_ant,      -- als Excel-Formel  (nur bei Wohnungsgrundbuch JOIN ÃŒber 'Recht an') 
     115   --s.buchungsart,                                       -- verschlÃŒsselt 
     116     b.bezeichner                         AS bu_art,      -- entschlÃŒsselt 
     117 
     118   -- Felder aus der Subquery "Namens-Zweig" 
     119     nz.nam_lfd, nz.nam_ant, nz.nam_bes,                  -- nn.* 
     120     nz.psgml,                                            -- möglicher Filter Personen-GML-ID 
     121     nz.nachnameoderfirma, nz.vorname, nz.geburtsdatum    -- p.* 
     122 
     123  FROM ax_flurstueck    f               -- FlurstÃŒck 
     124  JOIN doppelverbindung d               -- beide FÀlle ÃŒber Union-View: direkt und ÃŒber Recht von BS an BS 
     125    ON d.fsgml = f.gml_id  
     126 
     127  JOIN ax_buchungsstelle s              -- Buchungs-Stelle 
     128    ON d.bsgml = s.gml_id  
     129  JOIN ax_buchungsstelle_buchungsart b  -- EnstschlÃŒsselung der Buchungsart 
     130    ON s.buchungsart = b.wert  
     131 
     132--  JOIN alkis_beziehungen v2             -- ax_flurstueck  >weistAuf>  AX_LagebezeichnungMitHausnummer 
     133--    ON v2.beziehung_von = f.gml_id AND v2.beziehungsart = 'weistAuf' 
     134--  JOIN ax_lagebezeichnungmithausnummer l 
     135--    ON v2.beziehung_zu = l.gml_id 
     136--  JOIN ax_lagebezeichnungkatalogeintrag k  
     137--   ON l.kreis = k.kreis AND l.gemeinde = k.gemeinde AND l.lage = k.lage  
     138 
     139  JOIN alkis_beziehungen v3              -- Grundbuch (zur Buchungs-Stelle) 
     140    ON s.gml_id = v3.beziehung_von  AND v3.beziehungsart = 'istBestandteilVon'  -- Buchung  --> Blatt 
     141  JOIN ax_buchungsblatt  gb  
     142    ON v3.beziehung_zu = gb.gml_id  
     143 
     144  LEFT JOIN -- LEFT: fiktives Blatt hat keine Namensnummern, dieser "Zweig" kann leer bleiben. 
     145  ( SELECT 
     146    -- Namensnummer 
     147     v4.beziehung_zu AS v4gml, 
     148     nn.laufendenummernachdin1421         AS nam_lfd,  
     149     '=' || nn.zaehler|| '/' || nn.nenner AS nam_ant,         -- als Excel-Formel 
     150     nn.beschriebderrechtsgemeinschaft    AS nam_bes, 
     151 
     152     -- Person (zur Namensnummer) 
     153     p.gml_id                            AS psgml,            -- möglicher Filter 
     154     p.nachnameoderfirma,                                     -- Familienname 
     155     p.vorname,                                               -- Vorname 
     156     p.geburtsdatum 
     157 
     158     -- Adresse des EigentÃŒmers  - Nein 
     159 
     160   FROM alkis_beziehungen v4         -- Namensnummer (zum GB-Blatt)  
     161   JOIN ax_namensnummer nn  
     162     ON v4.beziehung_von = nn.gml_id  
     163   JOIN alkis_beziehungen v5         -- Person (zur Namensnummer) 
     164     ON v5.beziehung_von = nn.gml_id  AND v5.beziehungsart = 'benennt'  -- NamNum   --> Person 
     165   JOIN ax_person p 
     166     ON v5.beziehung_zu = p.gml_id 
     167   WHERE v4.beziehungsart = 'istBestandteilVon'  -- Blatt  --> NamNum 
     168  ) AS nz   -- Namens-Zweig 
     169   ON nz.v4gml = gb.gml_id      -- LEFT JOIN: Namenzweig an Grundbuch anbinden 
     170 
     171  ORDER BY f.flurstueckskennzeichen, gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, nz.nam_lfd ; 
     172 
     173COMMENT ON VIEW exp_csv  
     174 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.'; 
     175 
     176-- GRANT SELECT ON TABLE exp_csv TO mb27;       -- User fÃŒr Auskunfts-Programme 
     177-- GRANT SELECT ON TABLE exp_csv TO alkisbuch;  -- User fÃŒr Auskunfts-Programme RLP-Demo 
     178 
     179 
    73180 
    74181-- Welche Karten-Typen ? 
     
    568675 
    569676 
     677-- Probleme mit der Trigger-Function "update_fields_beziehungen()" 
     678-- Manchmal kann zu einer gml_id in "alkis_beziehungen" die zustÀndige Tabelle nicht gefunden werden. 
     679-- Nach Änderung der Trigger-Function am 10.12.2013 wird die Beziehung trotzdem eingetragen, 
     680-- nur die Felder "von_typename" und "beginnt" bleiben leer. 
     681 
     682-- Diese FÀlle anzeigen: 
     683CREATE OR REPLACE VIEW beziehungsproblem_faelle 
     684AS 
     685  SELECT * 
     686    FROM alkis_beziehungen 
     687   WHERE beginnt IS NULL; 
     688 
     689-- Wie viele sind das? 
     690CREATE OR REPLACE VIEW beziehungsproblem_zaehler 
     691AS 
     692  SELECT count(ogc_fid) AS anzahl 
     693    FROM alkis_beziehungen 
     694   WHERE beginnt IS NULL; 
     695 
     696 
    570697-- END -- 
Note: See TracChangeset for help on using the changeset viewer.