Ignore:
Timestamp:
02/21/13 13:56:16 (11 years ago)
Author:
frank.jaeger
Message:

View zum Suchen und SQL-Befehl zum Löschen alter Versionen der ALKIS-Beziehungen zw. Flurstück und Buchungsstelle. Diese werden bei Replace nicht korrekt entfernt, wenn gleichzeitig Flurstück und Buchung geändert werden.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/import/sichten.sql

    r215 r265  
    99--  2012-04-24 pauschal Filter 'endet IS NULL' um historische Objekte auszublenden 
    1010--  2012-10-29 Redundanzen in Beziehungen suchen (entstehen durch replace) 
     11--  2013-02-20 Mehrfache Buchungsstellen zum FS suchen, dies sind Auswirkungen eines Fehlers bei Replace 
    1112 
    1213--  ----------------------------------------- 
     
    782783COMMENT ON VIEW beziehungen_redundant_in_delete IS 'alkis_beziehungen zu denen es eine identische neue Version gibt und wo das Objekt noch in der delete-Tabelle vorkommt.'; 
    783784 
     785 
     786-- Suche nach Fehler durch "Replace" 
     787-- Wenn ax_flurstueck ÃŒber "replace" ausgetauscht wird und dabei gleichzeitig eine andere  
     788-- Buchungsstelle bekommt, dann bleibt die alte Buchungsstelle in den alkis_beziehungen. 
     789-- Mail PostNAS Mailingliste von 2013-02-20 
     790 
     791-- Version Marvin Brandt, Unna: 
     792 
     793-- CREATE OR REPLACE VIEW mehrfache_buchung_zu_fs 
     794-- AS 
     795--  SELECT gml_id, anzahl FROM  
     796--  ( SELECT f.*,  
     797--     ( SELECT count(f2.gml_id) as anzahl  
     798--       FROM ax_flurstueck f2  
     799--       JOIN alkis_beziehungen a1  
     800--          ON f2.gml_id = a1.beziehung_von  
     801--         AND a1.beziehungsart = 'istGebucht'  
     802--       WHERE f2.gml_id = f.gml_id  
     803--     ) as anzahl  
     804--     FROM ax_flurstueck f 
     805--  ) as sub  
     806--  WHERE sub.anzahl > 1; 
     807 
     808-- Version Frank JÀger, Lemgo (keep it simple) 
     809CREATE OR REPLACE VIEW mehrfache_buchung_zu_fs 
     810AS 
     811  SELECT f.gml_id, count(b.ogc_fid) AS anzahl 
     812    FROM ax_flurstueck f 
     813    JOIN alkis_beziehungen b 
     814      ON f.gml_id = b.beziehung_von  
     815  WHERE b.beziehungsart = 'istGebucht' 
     816  GROUP BY f.gml_id 
     817  HAVING count(b.ogc_fid) > 1; 
     818 
     819-- Noch einfacher? - Auch ohne JOIN wird das selbe Ergebnis geliefert. 
     820-- Doppelte Verweise zÀhlen ohne zu prÃŒfen, ob die gml_id in ax_flurstueck existiert. 
     821--  SELECT b.beziehung_von, count(b.ogc_fid) AS anzahl 
     822--    FROM alkis_beziehungen b 
     823--   WHERE b.beziehungsart = 'istGebucht' 
     824--  GROUP BY b.beziehung_von 
     825--  HAVING count(b.ogc_fid) > 1; 
     826 
     827COMMENT ON VIEW mehrfache_buchung_zu_fs IS 'Nach replace von ax_flurtstueck mit einer neuen ax_buchungsstelle bleibt die alte Verbindung in alkis_beziehungen'; 
     828 
     829 
    784830-- END -- 
Note: See TracChangeset for help on using the changeset viewer.