Announcement

Collapse
No announcement yet.

Summe einer Baumstruktur berechnen (Paradox)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Summe einer Baumstruktur berechnen (Paradox)

    Hallo zusammen,

    ich habe in einer Paradoxdatenbank Datensätze, die über eine eindeutige Verknüpfung zu einer Baumstruktur verknüpft sind. Z.B. Proj1 besteht aus Proj2, Proj3 und Proj4, wobei Proj2 sich wieder aus den Unterprojekten Proj5 und Proj6 zusammensetzt. Auf jedes dieser Projekte sind Kosten gebucht.

    Gibt es eine Möglichkeit, per SQL die Projektkosten in einem separaten Feld des übergeordneten Projektes zu summieren?

    D.h. in Proj2 sind in einem Feld die direkt angefallenen Kosten, in einem 2. Feld die Kosten der Unterprojekte Proj5 + Proj6 summiert, in einem dritten Feld die Gesamtsumme berechnet.

    In Proj1 sind dann wieder in diesen Feldern die Eigenkosten, die Kosten von Proj2 + Proj3 + Proj4 summiert und im dritten Feld die Summe.

    Ist das per SQL in Paradox realisierbar und wenn ja, wie?

    Vielen Dank

    Gerd

  • #2
    Hallo zusammen,

    kann hier wirklich keiner helfen

    Gruß Ger

    Comment


    • #3
      OK!<br>
      Wie schon in der Beschreibung: Die Lösung ist mit einer Rekursion zu ermitteln.<br>
      Die Summe eines Baumes ist die Summe seiner Teilbäume.<br>
      Ganz schematisch (Code ist nicht kompilierbar!);<br>
      function TeilSumme ( iVater : integer ) : real;<br>
      var Summe : real;<br>
      begin<br>
      //Alle Söhne holen<br>
      select * from Baum where Vater = iVater<br>
      //Alle geholten Datensätze abscannen<br>
      Summe := 0;<br>
      for alle Datensätze do begin<br>
      aktuellerDatensatz.Gesamtkosten := TeilSumme ( Datensatz.Nummer );<br>
      Summe := Summe + aktuellerDatensatz.Kosten + aktuellerDatensatz.Gesamtkosten;<br>
      end;<br>
      result := Summe;<br>
      end;<br>
      <br>
      Aufruf:<br>
      aktuellerDatensatz.Gesamtkosten := TeilSumme ( aktuellerdatensatz.Nummer )<br>
      OK?!?<br>
      Sorry ich habs nich so mit Paradox. Mit nem richtigen SQL Server kann man solche Dinge sehr elegant als StoredProcedure realisieren und muß sich nicht lokal herumquälen.<br>
      BYE BERN

      Comment


      • #4
        Hallo Bernd,

        danke für deinen Tip. Programmmäßig habe ich auch eine Lösung, aber ich hätte gerne eine Lösung per Local-SQL und da weiß ich leider nicht, wie ich solche Rekursionen lösen kann.

        Kennt jemand eine Lösung in Local-SQL?

        Gruß
        Ger

        Comment


        • #5
          Hallo!<br>
          Sorry SQL kennt keine Rekursionen!<br>
          Local SQL kennt keine stroredProcedures also auch hier keine Rettung!<br>
          Projekt umstellen auf InterBase oder MS SQL etc..... !!!<br>
          BYE BERND<br&gt

          Comment

          Working...
          X