sql >> Database teknologi >  >> RDS >> Sqlserver

SQL - kører i alt, når data allerede er grupperet

ANSI-standardmetoden til at lave en kumulativ sum er:

select t.*, sum(totalpmtamt) over (order by mdate) as runningsum
from #testdata t
order by t.mdate;

Ikke alle databaser understøtter denne funktionalitet.

Hvis din database ikke understøtter den funktionalitet, ville jeg gå efter en korreleret underforespørgsel:

select t.*,
       (select sum(t2.totalpmtamt)
        from #testdata t2
        where t2.mdate <= t.mdate
       ) as runningsum
from #testdata
order by t.mdate;


  1. sammenligne dato og tid php

  2. Hvordan vælger man den n'te række i en SQL-databasetabel?

  3. DATEDIFF() Eksempler i SQL Server

  4. Python, mysql.connector Fejl:Intet resultat indstillet til at hente fra; cgitb viser, at den korrekte værdi sendes til funktion