Ignore:
Timestamp:
02/06/14 16:40:10 (7 years ago)
Author:
frank.jaeger
Message:

Feinschliff und Korrektur an Auskunft und Navigation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/import/pp_laden.sql

    r296 r315  
    1616--  2013-07-10 F.J. Bereinigen der alkis_beziehungen auskommentiert, wird jetzt im Trigger gelöst. 
    1717--  2012-10-24 Neue Tabelle für die Präsentation von Straßennamen und -Klassifikationen 
     18--  2014-02-05 Bereits auskommentierte Aktionen gelöscht für die Beseitigung von Rdundanzen aus fehlerhaften Triggern 
     19 
    1820 
    1921-- ============================ 
     
    4143-- Besser wäre: sofort im Trigger bei replace entfernen. 
    4244-- Siehe Schema in FUNCTION delete_feature_kill 
    43  
    44 -- 2013-07-10 Das folgende Delete auskommentiert. Das wird jetzt im Trigger gelöst. 
    45 ------ 
    46 --      DELETE  
    47 --        FROM alkis_beziehungen AS bezalt        -- Beziehung Alt 
    48 --       WHERE EXISTS 
    49 --                 (SELECT ogc_fid 
    50 --                       FROM alkis_beziehungen AS bezneu -- Beziehung Neu 
    51 --                      WHERE bezalt.beziehung_von = bezneu.beziehung_von 
    52 --                        AND bezalt.beziehung_zu  = bezneu.beziehung_zu 
    53 --                        AND bezalt.beziehungsart = bezneu.beziehungsart 
    54 --                        AND bezalt.ogc_fid       < bezneu.ogc_fid 
    55 --                      ); 
    56 ------ 
    57  
    58 -- Denkbar ist eine Variante für den Trigger, die zusätzlich 
    59 -- auf eine bestimmte gml_id filtert. 
    60 -- Damit wäre die DB schon während der Konvertierung konsistenter. 
    61 -- Nachtrag 2013-02-20: 
    62 -- Diese provisorische Lösung korrigiert nur die Fälle, wo ein Replace eine redundante Beziehung 
    63 -- einträgt. Wenn ein Objekt und seine Beziehung gleichzeitig geändert wird, wird der alte 
    64 -- Eintrag nicht gefunden und verbleibt in den Beziehungen. 
    65 -- Siehe z.B. in Datei "sichten.sql" die Abfrage "mehrfache_buchung_zu_fs"  
    66  
    67  
    68 -- Mehrfache Buchungen zu einem Flurstück korrigieren. 
    69 -- Neu 2013-02-21 
    70 -- Dieser Fehler enststeht, wenn ein Replace zu "ax_flurstueck" gleichzeitig die 
    71 -- Beziehung 'istGebucht' zu "ax_buchungsStelle" ändert. 
    72 -- Kann entfallen, sobald PostNAS bei Replace die "alkis_beziehungen" richtig fortführt. 
    73  
    74 -- Version Marvin Brandt, Unna 
    75 --      DELETE 
    76 --      --  SELECT * 
    77 --      FROM alkis_beziehungen a1 
    78 --      WHERE a1.beziehung_von = ANY(SELECT gml_id FROM ( 
    79 --                              SELECT f.*, 
    80 --                                              (SELECT count(f2.gml_id) as anzahl 
    81 --                                              FROM ax_flurstueck f2 
    82 --                                              JOIN alkis_beziehungen a1 ON f2.gml_id = a1.beziehung_von AND a1.beziehungsart = 'istGebucht' 
    83 --                                              WHERE f2.gml_id = f.gml_id 
    84 --                                              ) as anzahl 
    85 --                                      FROM ax_flurstueck f 
    86 --                                      ) as sub 
    87 --                              WHERE sub.anzahl > 1 ) 
    88 --      AND a1.beziehungsart = 'istGebucht' 
    89 --      AND a1.ogc_fid = (SELECT min(sub.ogc_fid) as ogc_fid FROM ( 
    90 --              SELECT a1.*, 
    91 --                      (SELECT count(f2.gml_id) as anzahl 
    92 --                              FROM ax_flurstueck f2 
    93 --                              JOIN alkis_beziehungen a1 ON f2.gml_id = a1.beziehung_von AND a1.beziehungsart = 'istGebucht' 
    94 --                              WHERE f2.gml_id = f.gml_id 
    95 --                      ) as anzahl 
    96 --              FROM ax_flurstueck f 
    97 --              JOIN alkis_beziehungen a1  
    98 --              ON f.gml_id = a1.beziehung_von AND a1.beziehungsart = 'istGebucht' 
    99 --              ) as sub 
    100 --      WHERE sub.beziehung_von = a1.beziehung_von); 
    101  
    102  
    103 -- 2013-07-10 Das folgende Delete auskommentiert. Das wird jetzt im Trigger gelöst 
    104 ------ 
    105 --      -- Version Frank Jäger, Lemgo  
    106 --      DELETE 
    107 --      -- SELECT *   -- TEST: erst mal schauen, was gelöscht würde, wenn ... 
    108 --      FROM alkis_beziehungen b 
    109 --      WHERE b.beziehungsart = 'istGebucht' 
    110 --        -- Die erste subquery zählt die Buchungen zu einer (Flurstücks-) gml_id. 
    111 --        -- Es wird nur dort gelöscht, wo mehrerer Buchungen existieren. 
    112 --        AND 1 <  
    113 --               ( SELECT count(f1.ogc_fid) AS anzfs 
    114 --                      FROM ax_flurstueck f1 
    115 --                      JOIN alkis_beziehungen z 
    116 --                        ON f1.gml_id = z.beziehung_von 
    117 --                 WHERE f1.gml_id = b.beziehung_von 
    118 --                       AND z.beziehungsart = 'istGebucht' 
    119 --                 GROUP BY f1.gml_id ) 
    120 --        -- Die zweite Subquery liefert die letzte (= aktuelle) Beziehung. 
    121 --        -- Diese aktuelle Buchung wird vom Löschen ausgeschlossen. 
    122 --        AND b.ogc_fid < 
    123 --               ( SELECT max(a.ogc_fid) AS maxi 
    124 --                      FROM ax_flurstueck f2 
    125 --                      JOIN alkis_beziehungen a 
    126 --                        ON f2.gml_id = a.beziehung_von 
    127 --                 WHERE f2.gml_id = b.beziehung_von 
    128 --                       AND a.beziehungsart = 'istGebucht' 
    129 --                 GROUP BY a.beziehung_von ) 
    130 --      -- bei Test mit SELECT darf man sortieren: 
    131 --      --  ORDER BY b.beziehung_von, b.ogc_fid 
    132 --      ; 
    133 ------ 
    134  
    135  
    136 -- SELECT * 
    137 --  FROM alkis_beziehungen AS bezalt 
    138 --  WHERE EXISTS 
    139 --        (SELECT ogc_fid 
    140 --          FROM alkis_beziehungen AS bezneu 
    141 --         WHERE bezalt.beziehung_von = bezneu.beziehung_von 
    142 --           AND bezalt.beziehung_zu  = bezneu.beziehung_zu 
    143 --           AND bezalt.beziehungsart = bezneu.beziehungsart 
    144 --           AND bezalt.ogc_fid       < bezneu.ogc_fid 
    145 --         ); 
    146  
    147 -- SELECT * 
    148 --  FROM alkis_beziehungen AS bezalt 
    149 --  WHERE EXISTS 
    150 --        (SELECT ogc_fid 
    151 --          FROM alkis_beziehungen AS bezneu 
    152 --         WHERE bezalt.beziehung_von = bezneu.beziehung_von 
    153 --           AND bezalt.beziehung_zu  = bezneu.beziehung_zu 
    154 --           AND bezalt.beziehungsart = bezneu.beziehungsart 
    155 --           AND bezalt.ogc_fid       < bezneu.ogc_fid 
    156 --         ) 
    157 --      -- mit dem Zusatz nur die Faelle aus dem letzten Durchlauf, 
    158 --      -- die aktuell noch in der Delet-Tabelle stehen 
    159 --      AND EXISTS 
    160 --         (SELECT ogc_fid 
    161 --          FROM delete 
    162 --          WHERE bezalt.beziehung_von = substr(featureid, 1, 16) 
    163 --             OR bezalt.beziehung_zu  = substr(featureid, 1, 16) 
    164 --         ); 
    16545 
    16646 
     
    19979 
    20080-- Straßen - N a m e n  und  - K l a s s i f i k a t i o n 
    201 -- NEU 2013-10-24 
    20281-- Tabellen für die Präsentation von Straßen-Namen und -Klassifikationen 
    20382-- Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in der Tabelle "pp_strassenname". 
     
    410289  WHERE z.gemeinde is Null;      -- ..  noch nicht vorhanden ist 
    411290 
    412  
    413291-- ENDE -- 
Note: See TracChangeset for help on using the changeset viewer.