Announcement

Collapse
No announcement yet.

Referenz auf vorigen Datensatz

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

  • Referenz auf vorigen Datensatz

    hi,

    ich habe eine Tabelle mit einem künstlichen Primärschlüssel (ID) und ein Float-Wert (Value).
    In einer View möchte ich jetzt den Wert Value und die Summe von Value + Value des letzten eingetragenenen Datensatzes anzeigen.

    Als Beispiel:

    ID / Value
    ------------
    1 / 3.0
    2 / 2.5
    3 / 4.0
    4 / 1.0


    In der View soll dann auftauchen
    -----------------------------------------
    3.0 / 3.0
    2.5 / 5.5
    4.0 / 9.5
    1.0 / 10.5

    Wie bekommen ich das möglich performant hin?

  • #2
    [highlight="sql"]
    select
    a.ID,
    a.Value,
    (select sum( b.value) as kumValue from <Tabelle> b where b.ID <=a.ID )
    from
    <Tabelle> a;
    [/highlight]

    Comment


    • #3
      Hallo Markus,

      die Idee hatte ich auch, nur wird das bei vielen Datensätzen recht langsam, weil ich für jeden Datensatz n die ersten n-1 Datensätze aufsummiere.

      Ich benötige aber nur für den Datensatz n die Summe des Datensatzes n-1 + des eigenen Wertes.

      Oder macht das in der Ausführungsgeschwindigkeit keinen Unterschied?

      Gruß Carsten

      Comment


      • #4
        Besonders performant ist diese Lösung natürlich nicht.
        -Wieviele Datensätze befinden sich in der Tabelle?
        -Welches DBMS?
        Man könnte es mit einer rekursiven SP versuchen.

        Comment


        • #5
          Originally posted by carreu View Post
          ...Ich benötige aber nur für den Datensatz n die Summe des Datensatzes n-1 + des eigenen Wertes.
          Also mal grob überlegt ist die summe eines Feldes von n-1 + Wert des Feldes von n gleich der Summe aller n Felder!

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Hi,

            hast Du einen Index auf Deinem "künstlichen" Primärschlüssel?


            Gruß frauwue
            docendo discimus

            Comment


            • #7
              Also mal grob überlegt ist die summe eines Feldes von n-1 + Wert des Feldes von n gleich der Summe aller n Felder!
              Aber für jeden Eintrag werden bei meiner Minimallösung alle Vorgänger addiert, was bei steigender Anzahl sehr zäh werden kann

              Comment

              Working...
              X