Changeset 332 for trunk


Ignore:
Timestamp:
09/12/14 14:07:11 (10 years ago)
Author:
frank.jaeger
Message:

Zwischen-Stand vor Wochenende

Location:
trunk
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/import/alkis_PostNAS_schema.sql

    r331 r332  
    5050--               * Übernahme der Objektartengruppe in den Kommentar zur Tabelle. 
    5151 
     52-- 2014-09-12 FJ Indizierung der ersten 16 Zeichen der gml_id, wenn diese Ziel einer ALKIS-Beziehung ist. 
     53--               "delete"-Tabelle aus Norbit-Version passend zum Hist-Trigger. 
    5254 
    5355--  Dies Schema kann NICHT mehr mit der gdal-Version 1.9 verwendet werden. 
     
    98100 
    99101COMMENT ON TABLE  import             IS 'PostNAS: Verwaltung der Import-ProgrammlÀufe. Wird nicht vom Konverter gefÃŒllt sondern aus der Start-Prozedur (z.B. konv_batch.sh).'; 
    100 COMMENT ON COLUMN import.id          IS 'Laufende Nummer der Konverter-Datei-Verarbeitung. Der Max-Wert von "id" wird als "alkis_beziehungen.import_id" verwendet, um ein vollstÀndiges Löschen alter Beziehungen zu ermöglichen.'; 
     102COMMENT ON COLUMN import.id          IS 'Laufende Nummer der Konverter-Datei-Verarbeitung.'; 
    101103COMMENT ON COLUMN import.datum       IS 'Zeitpunkt des Beginns des Konverter-Laufes fÃŒr einen Stapel von NAS-Dateien.'; 
    102104COMMENT ON COLUMN import.verzeichnis IS 'Ort von dem die NAS-Dateien verarbeitet wurden.'; 
    103105COMMENT ON COLUMN import.importart   IS 'Modus des Konverter-Laufes: e="Erstladen" oder a="NBA-Aktualisierung"'; 
    104106 
    105 -- Tabelle "delete" fÃŒr Lösch- und FortfÃŒhrungsdatensÀtze 
     107-- Tabelle "delete" fÃŒr Lösch- und FortfÃŒhrungsdatensÀtze. 
     108-- Über diese Tabelle werden Aktualisierungen des Bestandes gesteuert. 
     109-- Der Konverter ogr2ogr (PostNAS) trÀgt die NAS-Operatuonen "delete", "replace" und "update" hier ein. 
     110-- Die weitere ALKIS-spezifische AusfÃŒhrung dieser Operationen muss durch Trigger auf dieser Tabelle erfolgen. 
     111-- Das betrifft z.B. das Löschen von Objekten, die ÃŒber die NAS-Update-Funktion einen "endet"-Eintrag bekommen haben.  
     112-- 2014-09-12: "anlass" und "endet" hinzugefÃŒgt. Aktueller Trigger (hist) fÃŒr NAS-"update" benötigt diese Spalten. 
    106113CREATE TABLE "delete" ( 
    107114     ogc_fid             serial NOT NULL, 
     
    111118     safetoignore        character varying,       -- replace.safetoignore 'true'/'false' 
    112119     replacedBy          character varying,       -- gmlid 
     120        anlass               character varying,       -- update.anlass 
     121        endet                character(20),           -- update.endet 
    113122     ignored             boolean DEFAULT false,   -- Satz wurde nicht verarbeitet 
    114123     CONSTRAINT delete_pk PRIMARY KEY (ogc_fid) 
     
    125134COMMENT ON COLUMN delete.safetoignore IS 'Attribut safeToIgnore von wfsext:Replace'; 
    126135COMMENT ON COLUMN delete.replacedBy   IS 'gml_id des Objekts, das featureid ersetzt'; 
     136COMMENT ON COLUMN delete.anlass       IS 'update.anlass'; 
     137COMMENT ON COLUMN delete.endet        IS 'update.endet'; 
    127138COMMENT ON COLUMN delete.ignored      IS 'Löschsatz wurde ignoriert'; 
    128139 
     
    130141-- B e z i e h u n g e n 
    131142-- ---------------------------------------------- 
    132 -- Zentrale Tabelle fuer alle Relationen im Buchwerk. Seit PostNAS 0.8 entfallen. 
     143-- Zentrale Tabelle fuer alle Relationen im Buchwerk.  
     144-- Seit PostNAS 0.8 entfallen. Wird aber von PostNAS wieder angelegt, wenn sie fehlt. 
    133145-- Die FremdschlÃŒssel 'beziehung_von' und 'beziehung_zu' verweisen auf die ID des Objekte (gml_id). 
    134146-- ZusÀtzlich enthÀlt 'beziehungsart' noch ein Verb fÃŒr die Art der Beziehung. 
     
    274286CREATE INDEX ap_lpo_geom_idx   ON ap_lpo USING gist  (wkb_geometry); 
    275287CREATE UNIQUE INDEX ap_lpo_gml ON ap_lpo USING btree (gml_id, beginnt); 
     288CREATE INDEX ap_lpo_gml16      ON ap_lpo USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
    276289CREATE INDEX ap_lpo_endet      ON ap_lpo USING btree (endet); 
    277290CREATE INDEX ap_lpo_dzdv       ON ap_lpo USING gin   (dientzurdarstellungvon); 
     
    506519CREATE INDEX ax_flurstueck_geom_idx   ON ax_flurstueck USING gist  (wkb_geometry); 
    507520CREATE UNIQUE INDEX ax_flurstueck_gml ON ax_flurstueck USING btree (gml_id, beginnt); 
     521CREATE INDEX ax_flurstueck_gml16      ON ax_flurstueck USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
    508522CREATE INDEX ax_flurstueck_lgfzn      ON ax_flurstueck USING btree (land, gemarkungsnummer, flurnummer, zaehler, nenner); 
    509523CREATE INDEX ax_flurstueck_arz        ON ax_flurstueck USING btree (abweichenderrechtszustand); 
     
    611625 
    612626CREATE UNIQUE INDEX ax_grenzpunkt_gml ON ax_grenzpunkt USING btree (gml_id, beginnt); 
    613 CREATE INDEX ax_grenzpunkt_abmm ON ax_grenzpunkt USING btree (abmarkung_marke); 
    614 CREATE INDEX ax_grenzpunkt_za   ON ax_grenzpunkt USING btree (zeigtauf); 
     627CREATE INDEX ax_grenzpunkt_gml16 ON ax_grenzpunkt USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
     628CREATE INDEX ax_grenzpunkt_abmm  ON ax_grenzpunkt USING btree (abmarkung_marke); 
     629CREATE INDEX ax_grenzpunkt_za    ON ax_grenzpunkt USING btree (zeigtauf); 
    615630 
    616631COMMENT ON TABLE  ax_grenzpunkt        IS 'Angaben zum FlurstÃŒck: (ZUSO) "Grenzpunkt" ist ein den Grenzverlauf bestimmender, meist durch Grenzzeichen gekennzeichneter Punkt.'; 
     
    651666 
    652667CREATE UNIQUE INDEX ax_lagebezeichnungohnehausnummer_gml ON ax_lagebezeichnungohnehausnummer USING btree (gml_id, beginnt); 
     668CREATE INDEX ax_lagebezeichnungohnehausnummer_gml16      ON ax_lagebezeichnungohnehausnummer USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
    653669CREATE INDEX ax_lagebezeichnungohnehausnummer_key        ON ax_lagebezeichnungohnehausnummer USING btree (land, regierungsbezirk, kreis, gemeinde,lage); 
    654670--EATE INDEX ax_lagebezeichnungohnehausnummer_beschreibt ON ax_lagebezeichnungohnehausnummer USING gin (beschreibt); 
     
    701717 
    702718CREATE UNIQUE INDEX ax_lagebezeichnungmithausnummer_gml ON ax_lagebezeichnungmithausnummer USING btree (gml_id, beginnt); 
     719CREATE INDEX ax_lagebezeichnungmithausnummer_gml16      ON ax_lagebezeichnungmithausnummer USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
    703720CREATE INDEX ax_lagebezeichnungmithausnummer_lage       ON ax_lagebezeichnungmithausnummer USING btree (gemeinde, lage); 
    704721--EATE INDEX ax_lagebezeichnungmithausnummer_hat        ON ax_lagebezeichnungmithausnummer USING gin   (hat); 
     
    760777 
    761778CREATE UNIQUE INDEX ax_lagebezeichnungmitpseudonummer_gml ON ax_lagebezeichnungmitpseudonummer USING btree (gml_id, beginnt); 
    762 --EATE INDEX ax_lagebezeichnungmitpseudonummer_gehoertzu ON ax_lagebezeichnungmitpseudonummer USING btree (gehoertzu); 
     779CREATE INDEX ax_lagebezeichnungmitpseudonummer_gml16      ON ax_lagebezeichnungmitpseudonummer USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
     780--EATE INDEX ax_lagebezeichnungmitpseudonummer_gehoertzu  ON ax_lagebezeichnungmitpseudonummer USING btree (gehoertzu); 
    763781 
    764782COMMENT ON TABLE  ax_lagebezeichnungmitpseudonummer        IS 'Angaben zur Lage: (NREO) "Lagebezeichnung mit Pseudonummer" ist die von der Katasterbehörde fÃŒr ein bestehendes oder geplantes GebÀude vergebene Lagebezeichnung und ggf. einem Adressierungszusatz, wenn von der Gemeinde fÃŒr das GebÀude keine Lagebezeichnung mit Hausnummer vergeben wurde (z.B. Kirche, NebengebÀude).'; 
     
    14881506 
    14891507CREATE UNIQUE INDEX id_ax_person_gml ON ax_person USING btree (gml_id, beginnt); 
     1508CREATE INDEX        ax_person_gml16  ON ax_person USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
    14901509 
    14911510CREATE INDEX ax_person_hat  ON ax_person  USING gin  (hat); 
     
    15181537--Es handelt sich um die inverse Relationsrichtung.'; 
    15191538 
     1539 
    15201540--AX_Personengruppe 
    15211541-- Objektart: AX_Personengruppe Kennung: 21002 
    15221542-- 'Personengruppe' ist die Zusammenfassung von Personen unter einem Ordnungsbegriff. 
    15231543-- ** Tabelle bisher noch nicht generiert 
     1544 
     1545-- CREATE INDEX ax_personengruppe_gml16 ON ax_personengruppe USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
     1546 
    15241547 
    15251548-- A n s c h r i f t 
     
    15561579 
    15571580CREATE UNIQUE INDEX ax_anschrift_gml  ON ax_anschrift  USING btree (gml_id, beginnt); 
     1581CREATE INDEX       ax_anschrift_gml16 ON ax_anschrift  USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
    15581582--EATE        INDEX ax_anschrift_bsa  ON ax_anschrift  USING gin   (beziehtsichauf); 
    15591583--EATE        INDEX ax_anschrift_gz   ON ax_anschrift  USING gin   (gehoertzu); 
     
    15931617COMMENT ON COLUMN ax_verwaltung.haengtan       IS '-> Beziehung zu ax_person (1): Durch die Relation ''Verwaltung'' hÀngt an ''Person'' wird die Verwaltung namentlich benannt.'; 
    15941618 
     1619CREATE UNIQUE INDEX ax_verwaltung_gml  ON ax_verwaltung USING btree (gml_id, beginnt); 
     1620CREATE INDEX ax_verwaltung_gml16       ON ax_verwaltung USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
     1621CREATE INDEX ax_verwaltung_han         ON ax_verwaltung USING btree (haengtan); 
     1622 
    15951623 
    15961624-- V e r t r e t u n g 
     
    16101638     haengtan            character varying,    --> ax_person 
    16111639     beziehtsichauf      character varying[],  --> ax_flurstueck 
    1612       CONSTRAINT ax_vertretung_pk PRIMARY KEY (ogc_fid) 
     1640     CONSTRAINT ax_vertretung_pk PRIMARY KEY (ogc_fid) 
    16131641); 
    16141642SELECT AddGeometryColumn('ax_vertretung','dummy',:alkis_epsg,'POINT',2); 
     
    16201648COMMENT ON COLUMN ax_vertretung.haengtan       IS '-> Beziehung zu ax_person (1): Die Relation ''Vertretung'' hÀngt an ''Person'' sagt aus, welche Person die Vertretung wahrnimmt.'; 
    16211649COMMENT ON COLUMN ax_vertretung.beziehtsichauf IS '-> Beziehung zu ax_flurstueck (0..*): Die Relation ''Vertretung'' bezieht sich auf ''FlurstÃŒck'' sagt aus, fÃŒr welche FlurstÃŒcke die Vertretung wahrgenommen wird.'; 
     1650 
     1651CREATE INDEX ax_vertretung_han         ON ax_vertretung USING btree (haengtan); 
     1652CREATE INDEX ax_vertretung_bezauf      ON ax_vertretung USING gin   (beziehtsichauf); 
    16221653 
    16231654 
     
    16521683 
    16531684CREATE UNIQUE INDEX ax_namensnummer_gml   ON ax_namensnummer  USING btree (gml_id, beginnt); 
     1685CREATE INDEX  ax_namensnummer_gml16       ON ax_namensnummer  USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
     1686 
    16541687CREATE        INDEX ax_namensnummer_barvz ON ax_namensnummer  USING btree (bestehtausrechtsverhaeltnissenzu); 
    16551688CREATE        INDEX ax_namensnummer_ben   ON ax_namensnummer  USING btree (benennt); 
     
    17391772 
    17401773CREATE UNIQUE INDEX ax_buchungsstelle_gml ON ax_buchungsstelle USING btree (gml_id, beginnt); 
     1774CREATE INDEX ax_buchungsstelle_gml16  ON ax_buchungsstelle  USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
    17411775 
    17421776CREATE INDEX ax_buchungsstelle_an     ON ax_buchungsstelle  USING gin  (an); 
     
    18201854CREATE INDEX ax_gebaeude_geom_idx   ON ax_gebaeude USING gist (wkb_geometry); 
    18211855CREATE UNIQUE INDEX ax_gebaeude_gml ON ax_gebaeude USING btree (gml_id, beginnt); 
     1856CREATE INDEX ax_gebaeude_gml16      ON ax_gebaeude USING btree (substring(gml_id,1,16)); -- ALKIS-Relation 
    18221857 
    18231858CREATE INDEX ax_gebaeude_geh  ON ax_gebaeude USING gin   (gehoert); 
  • trunk/import/pp_definition.sql

    r330 r332  
    2222--             Wie im Schema: SchlÃŒssel von integer nach varchar fÃŒr land, regierungsbezirk usw. 
    2323 
     24  --  IN ARBEIT +++++    substring(_.gml_id,1,16)  
    2425 
    2526-- ============================ 
     
    258259  SELECT DISTINCT p.gml_id AS person, g.land, g.regierungsbezirk, g.kreis, g.gemeinde 
    259260  FROM ax_person          p 
    260   JOIN ax_namensnummer    n  ON n.benennt = p.gml_id           -- Person <benennt< Namensnummer 
    261   JOIN ax_buchungsblatt   b  ON n.istbestandteilvon = b.gml_id -- Namensnummer >istBestandteilVon> Blatt 
    262   JOIN ax_buchungsstelle  s  ON s.istbestandteilvon = b.gml_id -- Blatt <istBestandteilVon< buchungsStelle 
    263   JOIN ax_flurstueck      f  ON f.istgebucht = s.gml_id        -- buchungsStelle <istGebucht< flurstÃŒck 
    264   JOIN ax_gemarkung       k  ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer  
    265   JOIN gemeinde_gemarkung g  ON k.gemarkungsnummer = g.gemarkung; 
     261  JOIN ax_namensnummer    n  ON n.benennt=substring(p.gml_id,1,16)            -- Person <benennt< Namensnummer 
     262  JOIN ax_buchungsblatt   b  ON n.istbestandteilvon=substring(b.gml_id,1,16) -- Namensnummer >istBestandteilVon> Blatt 
     263  JOIN ax_buchungsstelle  s  ON s.istbestandteilvon=substring(b.gml_id,1,16) -- Blatt <istBestandteilVon< buchungsStelle 
     264  JOIN ax_flurstueck      f  ON f.istgebucht=substring(s.gml_id,1,16)         -- buchungsStelle <istGebucht< flurstÃŒck 
     265  JOIN ax_gemarkung       k  ON f.land=k.land AND f.gemarkungsnummer=k.gemarkungsnummer  
     266  JOIN gemeinde_gemarkung g  ON k.gemarkungsnummer=g.gemarkung; 
    266267 
    267268COMMENT ON VIEW gemeinde_person_typ1  
     
    275276  SELECT DISTINCT p.gml_id AS person, g.land, g.regierungsbezirk, g.kreis, g.gemeinde 
    276277  FROM ax_person          p 
    277   JOIN ax_namensnummer    n  ON n.benennt = p.gml_id            -- Person <benennt< Namensnummer 
    278   JOIN ax_buchungsblatt   b  ON n.istBestandteilVon = b.gml_id  -- Namensnummer >istBestandteilVon> Blatt 
    279   JOIN ax_buchungsstelle  s1 ON s1.istbestandteilvon = b.gml_id -- Blatt <istBestandteilVon< buchungsStelle1 
    280   JOIN ax_buchungsstelle  s2 ON s2.gml_id = ANY(s1.an)          -- buchungsStelle2 <(recht)an< buchungsStelle1 
    281   JOIN ax_flurstueck      f  ON f.istgebucht = s2.gml_id        -- buchungsStelle2 < istGebucht < flurstÃŒck 
    282   JOIN ax_gemarkung       k  ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer  
    283   JOIN gemeinde_gemarkung g  ON k.gemarkungsnummer = g.gemarkung; 
     278  JOIN ax_namensnummer    n  ON n.benennt=substring(p.gml_id,1,16)             -- Person <benennt< Namensnummer 
     279  JOIN ax_buchungsblatt   b  ON n.istBestandteilVon=substring(b.gml_id,1,16)   -- Namensnummer >istBestandteilVon> Blatt 
     280  JOIN ax_buchungsstelle  s1 ON s1.istbestandteilvon=substring(b.gml_id,1,16) -- Blatt <istBestandteilVon< buchungsStelle1 
     281  JOIN ax_buchungsstelle  s2 ON substring(s2.gml_id,1,16)= ANY(s1.an)          -- buchungsStelle2 <(recht)an< buchungsStelle1 
     282  JOIN ax_flurstueck      f  ON f.istgebucht=substring(s2.gml_id,1,16)         -- buchungsStelle2 < istGebucht < flurstÃŒck 
     283  JOIN ax_gemarkung       k  ON f.land=k.land AND f.gemarkungsnummer=k.gemarkungsnummer  
     284  JOIN gemeinde_gemarkung g  ON k.gemarkungsnummer=g.gemarkung; 
    284285 
    285286COMMENT ON VIEW gemeinde_person_typ2  
     
    288289-- Statistik ÃŒber die Buchungs-Typen je Gemeinde 
    289290-- ToDo: +++++  View "gemeinde_gemarkung" nicht verwenden, auflösen 
    290 CREATE VIEW gemeinde_person_statistik 
     291CREATE OR REPLACE VIEW gemeinde_person_statistik 
    291292AS 
    292293  SELECT p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp, count(p.person) as personen 
     
    309310--      Gemarkungen: 4 Meter 
    310311 
    311 CREATE VIEW pp_gemeinde_analyse AS 
     312CREATE OR REPLACE VIEW pp_gemeinde_analyse AS 
    312313  SELECT land, gemeinde, gemeindename, 
    313314         st_npoints(the_geom)    AS umring_alle_punkte, 
     
    316317 
    317318 
    318 CREATE VIEW pp_gemarkung_analyse AS 
     319CREATE OR REPLACE VIEW pp_gemarkung_analyse AS 
    319320  SELECT land, gemeinde, gemarkung, gemarkungsname, 
    320321         st_npoints(the_geom)    AS umring_alle_punkte, 
  • trunk/import/sichten.sql

    r331 r332  
    3232--  2014-09-02 Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen. Relationen nun ÃŒber Spalten in den Objekttabellen.  
    3333--  2014-09-11 Neu: View "fehlersuche_namensanteile_je_blatt", substring(gml_id) bei Relation-Join, mehr "endet IS NULL" 
    34  
    35 -- ToDo: Einige Views sind sehr langsam geworden. Z.B. exp_csv welcher doppelverbindung verwendet. 
    36 --       Dadurch Export aus Bauchauskunft sehr langsam! 
    37 --       Derzeit provisorische Version von "doppelverbindung" (schnell aber nicht ganz korrrekt). 
     34--  2014-09-12 Korrektur "doppelverbindung" (nach Patch der Indices fÃŒr Relation auf Substring(gml_id,1,16)) 
    3835 
    3936-- Bausteine fÃŒr andere Views: 
     
    5350 
    5451--           DROP VIEW public.doppelverbindung; 
    55  
    56 /*  -- korrekte Version, leider unertrÀglich langsam, z.B. beim Export von CSV aus der Auskunft 
    57  
    5852CREATE OR REPLACE VIEW public.doppelverbindung 
    5953AS 
     
    7468   WHERE dien.endet IS NULL;   -- FÃŒr das zusÀtzliche Verbindungselement die Historie HIER ausschließen,  
    7569                               -- FÃŒr andere Tabellen muss dies in dem View erfolgen, der dies verwendet. 
    76 */ 
    77  
    78 -- TEST: Schneller, wenn auf Subtring verzichtet wird?  Ja! 
    79 -- Aber: Verbindungen ÃŒber aktualisierte, also lange ID's werden nicht gefunden.   
    80 CREATE OR REPLACE VIEW public.doppelverbindung 
    81 AS 
    82   -- FS >istGebucht> Buchungstelle 
    83   SELECT f1.gml_id              AS fsgml,    -- gml_id FlurstÃŒck 
    84          b1.gml_id              AS bsgml,    -- gml_id Buchungs 
    85          0                      AS ba_dien 
    86     FROM ax_flurstueck f1 
    87     JOIN ax_buchungsstelle b1   ON f1.istgebucht = substring(b1.gml_id,1,16) 
    88  UNION 
    89   -- FS >istGebucht> Buchungstelle  <an<  Buchungstelle 
    90   SELECT f2.gml_id              AS fsgml,    -- gml_id FlurstÃŒck 
    91          b2.gml_id              AS bsgml,    -- gml_id Buchung - (herrschendes GB) 
    92          dien.buchungsart       AS ba_dien   -- Ein Feld aus der Zwischen-Buchung zur Fall-Unterscheidung 
    93     FROM ax_flurstueck f2 
    94     JOIN ax_buchungsstelle dien ON f2.istgebucht = substring(dien.gml_id,1,16) 
    95   --JOIN ax_buchungsstelle b2   ON substring(dien.gml_id,1,16) = ANY (b2.an)    -- korrekt 
    96     JOIN ax_buchungsstelle b2   ON           dien.gml_id       = ANY (b2.an)    -- schnell 
    97    WHERE dien.endet IS NULL;   -- Nur fÃŒr das zusÀtzliche Verbindungselement die Historie HIER ausschließen,  
    98                                -- FÃŒr andere Tabellen muss dies in dem View erfolgen, der dies verwendet. 
    9970 
    10071COMMENT ON VIEW public.doppelverbindung  
     
    10273Dies ist ausschließlich gedacht zur Verwendung in anderen Views um diese einfacher zu machen.'; 
    10374 
    104 /* Test zur Zeitmessung 
    105  
    106 SELECT dien.gml_id, herr.gml_id 
    107 FROM ax_buchungsstelle dien  
    108 JOIN ax_buchungsstelle herr  ON dien.gml_id = ANY (herr.an) 
    109 WHERE dien.endet IS NULL AND herr.endet IS NULL 
    110 LIMIT 300; 
    111 -- 78 ms 
    112  
    113 SELECT dien.gml_id, herr.gml_id 
    114 FROM ax_buchungsstelle dien  
    115 JOIN ax_buchungsstelle herr  ON substring(dien.gml_id,1,16) = ANY (herr.an) 
    116 WHERE dien.endet IS NULL AND herr.endet IS NULL 
    117 LIMIT 300; 
    118 -- 19454 ms 
    119  
    120  
    121 */ 
    12275 
    12376-- Test-Ausgabe: Ein paar FÀlle mit "Recht an" 
  • trunk/info/info/alkis/alkisbestnw.php

    r330 r332  
    119119        WHERE sh.istbestandteilvon= $1 AND sd.endet IS NULL AND sh.endet IS NULL;"; 
    120120 
    121         $v=array($gmlid); // GB-Blatt 
     121        $v=array(substr($gmlid,1,16)); // GB-Blatt, in Relation immer nur 16 Zeichen 
    122122        $res=pg_prepare("", $sql); 
    123123        $res=pg_execute("", $v); 
  • trunk/info/info/alkis/alkisfkt.php

    r330 r332  
    197197 
    198198        $sqln="SELECT n.gml_id, n.laufendenummernachdin1421 AS lfd, n.zaehler, n.nenner, n.artderrechtsgemeinschaft AS adr, n.beschriebderrechtsgemeinschaft as beschr, n.eigentuemerart, n.anlass "; 
    199         $sqln.="FROM ax_namensnummer n WHERE n.istbestandteilvon= $1 ORDER BY n.laufendenummernachdin1421;"; 
     199        $sqln.="FROM ax_namensnummer n WHERE n.istbestandteilvon= $1 AND n.endet IS NULL ORDER BY n.laufendenummernachdin1421;"; 
    200200 
    201201        $v = array($gmlid); 
     
    247247                $sqlp ="SELECT p.gml_id, p.nachnameoderfirma, p.vorname, p.geburtsname, p.geburtsdatum, p.namensbestandteil, p.akademischergrad "; 
    248248                $sqlp.="FROM ax_person p JOIN ax_namensnummer nn ON nn.benennt=substring(p.gml_id,1,16) WHERE nn.gml_id= $1 AND p.endet IS NULL AND nn.endet IS NULL;"; 
    249                 // Timestamp an ID abschneiden! 
    250249 
    251250                $v = array($gmlnn); 
     
    294293                                // Schleife 3:  A d r e s s e  (OPTIONAL) 
    295294                                $sqla ="SELECT a.gml_id, a.ort_post, a.postleitzahlpostzustellung AS plz, a.strasse, a.hausnummer, a.bestimmungsland "; 
    296                                 $sqla.="FROM ax_anschrift a JOIN ax_person p ON substring(a.gml_id,1,16) = ANY(p.hat) WHERE p.gml_id= $1 ;"; // ORDER? 
     295                                $sqla.="FROM ax_anschrift a JOIN ax_person p ON substring(a.gml_id,1,16)=ANY(p.hat) WHERE p.gml_id= $1 AND a.endet IS NULL AND p.endet IS NULL;"; // ORDER? 
    297296                                $gmlp=$rowp["gml_id"]; // Person 
    298297                                $v = array($gmlp); 
     
    345344 
    346345                        $i++; // cnt Person 
    347                         // als eigene Tab-Zeile? 
    348                         // 'Anteil' ist der Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) an einem gemeinschaftlichen Eigentum (GrundstÃŒck oder Recht). 
    349                         if ($rown["zaehler"] != "") { 
     346 
     347                        // Anteil als eigene Tab-Zeile: 
     348                        $zaehler=$rown["zaehler"]; 
     349                        if ($zaehler != "") { 
     350                                $zaehler=str_replace(".", ",", $zaehler); // Dezimal-KOMMA wenn dem Notar der Bruch nicht reicht 
     351                                $nenner=str_replace(".", ",", $rown["nenner"]); 
     352                                $comnt="Anteil der Berechtigten in Bruchteilen (Par. 47 GBO) an einem gemeinschaftlichen Eigentum (Grundst&uuml;ck oder Recht)."; 
    350353                                echo "\n<tr>\n\t<td>&nbsp;</td>"; // Sp. 1 
    351                                 echo "\n\t<td><p class='avh' title='Anteil'>".$rown["zaehler"]."/".$rown["nenner"]." Anteil</p></td>"; 
     354                                echo "\n\t<td><p class='avh' title='".$comnt."'>".$zaehler."/".$nenner." Anteil</p></td>"; 
    352355                                echo "\n\t<td>&nbsp;</td>\n</tr>"; // Sp. 3 
    353356                        } 
     
    369372                // kommt vor bei "Fiktives Blatt", kein Fehler  
    370373                if ($debug > 0) {echo "<p class='dbg'>keine Namensnummern zum Blatt</p>";} 
    371  
    372374                if ($debug > 2) {echo "<p class='dbg'>Namensnummern: SQL=<br>".$sqln."<br>$1=gml(Blatt)= '".$gmlid."'</p>";} 
    373375        } 
Note: See TracChangeset for help on using the changeset viewer.