<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Nochmal Hallo zusammen,</p>
    <p>es tut mir leid, aber ich brüte noch immer an der Abfrage -
      leider sind meine SQL-Kenntnisse nur "basisch" - ich versuche
      daher die Abfrage mit den vielen JOINs in einzelne Abfragen
      aufzulösen - und die Ergebnisse dann nacheinander in eine
      Buchungssatz-Tabelle zu schreiben - so bekomme ich zwar einige
      richtige "Treffer" aber bei weitem nicht alle...</p>
    <p>Ich nutze folgende Abfragen (in einem Python3-Programm, das die
      Daten direkt aus den NAS-Daten ausliest.<br>
    </p>
    <span style="color:#008080;font-weight:bold;"></span>
    <pre style="background-color:#ffffff;color:#000000;font-family:'DejaVu Sans Mono';font-size:9,0pt;"><span style="color:#008080;font-weight:bold;"></span></pre>
    <p>Abfrage 1 - Normale Buchung</p>
    <pre style="background-color:#ffffff;color:#000000;font-family:'DejaVu Sans Mono';font-size:9,0pt;"><span style="color:#008080;font-weight:bold;">"SELECT gml_id, buchungsart, laufendeNummer, istbestandteilvon, an "
</span><span style="color:#008080;font-weight:bold;">"FROM ax_buchungsstelle "
</span><span style="color:#008080;font-weight:bold;">"WHERE gml_id ='</span><span style="color:#008080;font-weight:bold;">ax_flurstueck.istgebucht';"

</span></pre>
    <p>Abfrage 2 - Buchung mit Rechten</p>
    <span style="color:#008080;font-weight:bold;">"SELECT gml_id,
      buchungsart, laufendeNummer, zaehler, nenner, istbestandteilvon,
      an "<br>
    </span><span style="color:#008080;font-weight:bold;">"FROM
      Buchungsstelle "<br>
    </span><span style="color:#008080;font-weight:bold;">"WHERE </span><span
      style="color:#008080;font-weight:bold;">an ='</span><span
      style="color:#008080;font-weight:bold;">ax_flurstueck.istgebucht';"</span><br>
    <span style="color:#008080;font-weight:bold;"></span>
    <pre style="background-color:#ffffff;color:#000000;font-family:'DejaVu Sans Mono';font-size:9,0pt;">
Von da verknüpfe ich dann weiter auf das Buchungsblatt... Aber irgendwie bin ich wohl auf dem Holzweg, oder?

Danke

Helmut Seidel
<span style="color:#008080;font-weight:bold;"></span></pre>
    <div class="moz-signature"><br>
    </div>
    <div class="moz-cite-prefix">Am 10.07.19 um 17:58 schrieb Jäger,
      Frank (KRZ):<br>
    </div>
    <blockquote type="cite"
      cite="mid:F2176AE4E9FFAF45BEA8D84DD6F4AF1A4DB86B31@skrzmxmbx01">
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">… oder mehrere Buchungsstellen
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Bei „besonderen“ Buchungsarten (alles ausser "1100 Grundstück") ist ein Recht einer Buchungsstelle an einer anderen Buchungsstelle vorhanden. In der Relationen-Kette ist die Tabelle also (mehrfach) mit sich selbst verknüpft.

Hier ein Schnipsel aus einem View:

FROM ax_flurstueck f
     JOIN ax_gemarkung g ON f.land::text = g.land::text AND f.gemarkungsnummer::text = g.gemarkungsnummer::text
     JOIN ax_buchungsstelle dien ON f.istgebucht = dien.gml_id
     JOIN ax_buchungsstelle s ON dien.gml_id = ANY (s.an)
     JOIN ax_buchungsblatt gb ON gb.gml_id = s.istbestandteilvon
     JOIN ax_buchungsblattbezirk z ON gb.land::text = z.land::text AND gb.bezirk::text = z.bezirk::text
     JOIN ax_namensnummer nn ON gb.gml_id = nn.istbestandteilvon
     JOIN ax_person p ON p.gml_id = nn.benennt
….
Eselbrücke: Es gibt bei jeder Verbindung eine "herrschende" und eine "dienende" Buchung. Die herrschende (s) hat das "Recht an" (= Relation) der dienenden (dien).

Im Schnipsel ist zweimal „ax_buchungsstelle“ drin. Das fängt dann Buchungsarten wie:
 1301   "Wohnungs-/Teileigentum"
 1302   "Miteigentum Par. 3 Abs. 4 GBO"
 2101   "Erbbaurecht"
 2201   "Aufgeteiltes Erbbaurecht WEG"

Die zweite Buchungsstelle ist dann aus formalen Gründen einen speziellen Grundbuchblatt zugebucht:
 2000   "Katasterblatt"       "Ein Katasterblatt ist ein Buchungsblatt, das die Buchung im Liegenschaftskataster enthält."
 5000   "Fiktives Blatt"      "Das fiktive Blatt enthält die aufgeteilten Grundstücke und Rechte als Ganzes. Es bildet um die Miteigentumsanteile eine fachliche Klammer."

Wenn man die Kette auf 3 Mal "JOIN ax_buchungsstelle" verlängert, dann fängt man auf der letzten Ebene:
 2102   "Untererbbaurecht"
 2202   "Aufgeteiltes Untererbbaurecht WEG"
 2301   "Wohnungs-/Teilerbbaurecht"

Bei 4 mal bekommt man auf der letzten Ebene das:
 2302   "Wohnungs-/Teiluntererbbaurecht"

Die gesamte Buchung (4 Ebenen) geht dann z.B. über folgende Buchungsarten:
 1100 "Grundstück" => 2101 "Erbbaurecht" => 2202 "Aufgeteiltes Untererbbaurecht WEG" => 2302 "Aufgeteiltes Untererbbaurecht WEG"

Nach längeren Ketten fahnde ich noch ;-)

Alle Klarheiten beseitigt? Keiner hat gesagt, das wäre einfach.

Frank


Von: NAS [<a class="moz-txt-link-freetext" href="mailto:nas-bounces@lists.osgeo.org">mailto:nas-bounces@lists.osgeo.org</a>] Im Auftrag von Helmut Seidel M.A.
Gesendet: Mittwoch, 10. Juli 2019 16:54
An: <a class="moz-txt-link-abbreviated" href="mailto:nas@lists.osgeo.org">nas@lists.osgeo.org</a>
Betreff: [PostNAS Suite] Alkis-Beziehungen

….
• Nun sollte "AX_Buchungsblatt->BestehtAus" auf eine oder mehrere Buchungsstellen zurückverweisen, über die ich auf die Namensnummern verknüpfen kann.
….
Danke 
Helmut Seidel M.A.

</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
NAS mailing list
<a class="moz-txt-link-abbreviated" href="mailto:NAS@lists.osgeo.org">NAS@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/nas">https://lists.osgeo.org/mailman/listinfo/nas</a></pre>
    </blockquote>
  </body>
</html>