Announcement

Collapse
No announcement yet.

Rekursive Addition nach Oben

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

  • Rekursive Addition nach Oben

    Hallo, ich habe ein kleines Problem mit der Summierung innerhalb einer rekursiven Struktur mit einem SQL Statement für MS SQL.

    .. mein Hirn hat mich nur bis zum "WITH" Stamtement gebracht weiter weiss ich leider nicht ...

    Anforderung: Ich will für jeden Datensatz die Summe aller untergeordneten Kinder haben

    Datenbestand:
    ID PID MID Euro
    1 - 1 1
    1.1 1 1 2
    1.1.1 1.1 1 3
    1.2 1 1 4

    Ziel:
    ID PID MID Euro untergeordnete Euro
    1 - 1 1 9
    1.1 1 1 2 3
    1.1.1 1.1 1 3 0
    1.2 1 1 4 0

  • #2
    Es wäre einfacher mit einer computed column und einer UDF zu arbeiten. Dazu erstellt du zB folgende UDF (user defined function):
    Code:
    CREATE FUNCTION kindsumme(@id  varchar(99))
    RETURNS decimal(18,2)
    AS
    BEGIN
      
      RETURN (select sum(IsNull(euro,0) + IsNull(summe,0)) from tabelle where pid = @id)
    
    END
    ... und dann hängst du im ManagementStudio an diese Tabelle eine neue Spalte vom Typ decimal(18,2) an und schreibst unten bei ComputedColumSpecification/(Formel) folgendes:
    ([dbo].[kindsumme]([id]))

    Tabelle speichern, fertig. Ab sofort hast du die untergeordneten Euro immer aktuell in dieser Spalte stehen

    bye,
    Helmut

    PS: spaltentitel und variablentyp entsprechend selber anpassen ...

    Comment

    Working...
    X