Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: Abfrage mit Summe optimieren

  Alt 27. Aug 2014, 13:38
SQL-Code:
select *,0 as summe
  into #tmp
  from Tabelle1
 order by lfd

declare @summe int = 0
update #tmp
  set @summe = @summe + wert
      summe = @summe

select * from #tmp
Das geht natürlich auch mit einer Tabellenvariable bzw. weniger Spalten. Es würde auch reichen, nur den PK und die Summe in der Tmp-Tabelle zu halten, so etwa
SQL-Code:
select 0 as summe, wert, PKderTabelle
  into #tmp
  from Tabelle1
 order by lfd

declare @summe int = 0
update #tmp
  set @summe = @summe + wert
    , summe = @summe

select t.*, x.summe
  from Tabelle1 t
       join #tmp x on t.PKderTabelle = x.PKderTabelle
Ich persönlich würde das mit einer Tabellenvariablen machen, weil man sonst die temporäre Tabelle u.U. vorher löschen muss...

Bei den Windowingfunktionen, die jobo erwähnt hat, müsste man probieren, ob es etwas bringt.

Geändert von Dejan Vu (27. Aug 2014 um 14:30 Uhr) Grund: Summierung und Zuweisung vertauscht wg. 'lfd<=x.lfd'
  Mit Zitat antworten Zitat