SQL Server Performance

Summieren und addieren

Discussion in 'Posten Sie Ihre Fragen zu SQL Server hier' started by baxterstockman, Feb 28, 2011.

  1. baxterstockman New Member

    Hallo, ich habe eine Tabelle und moechte die ergebnisse pro tupel addieren
    beispiel:
    Datum Wert Wert total
    1.1.10 5 5
    2.1.10 4 9
    3.1.10 1 10
    usw.
    wenn ich sum benutze zeigt er mir nur sie Summierung aller Tupel an und nicht fuer jedes einzeln, hat jemand ne idee?
  2. ismailadar New Member

    Hi ,
    I have an idea in order to achieve this ıf i underdstand correctly.create
    table Tbl_Ex(Datum
    varchar (10),
    Wert int)insert
    into Tbl_Ex values('1.1.10',5)insert
    into Tbl_Ex values('2.1.10',4)insert
    into Tbl_Ex values('3.1.10',1)WITH
    tblCTEAS
    (select
    Datum,Wert,ROW_NUMBER() OVER (ORDER BY Datum) AS RowNumber from Tbl_Ex e )SELECT Datum,Wert ,(Select SUM(t2.Wert) as SumX from tblCTE t2
    where t2.RowNumber<=t1.RowNumber) as Werttotal FROM tblCTE t1
  3. FrankKalis Moderator

    Etwas einfacher als die vorherige Lösung ist
    SELECT
    Datum, i1, (SELECT SUM(t2.i1) AS SumX FROM @t t2
    WHERE
    t2.Datum<=t1.Datum) AS i1total FROM @t t1;
    Das Problem mit dieser Lösung liegt nur darin, dass sie für grössere Datenmengen nicht geeignet ist, da die Performance einbrechen wird. Da musst Du in Deiner eigenen Umgebung mal testen, ob die Performance für dich in Ordnung ist.
    Alternativen findest Du hier: http://weblogs.sqlteam.com/mladenp/archive/2009/07/28/SQL-Server-2005-Fast-Running-Totals.aspx
    Es sollte einfacher werden mit der nächsten SQL Server Version.
  4. FrankKalis Moderator

Share This Page