Eu gostaria de criar uma consulta pela qual eu desejava ver a soma acumulada do valor (neste caso é "Diferença"), organizado por conta e por ordem de data.
Ou seja, uma conta pode ter no dia 01/01/2020 o valor de -10, no dia seguinte -20 e -30, e eu queria fazer a soma acumulada, -10, -30, -60, assim sucessivamente. Cada registo tem um identificador: [ID Transação], que pode não estar ordenado pela ordem que quero.
Gostaria de ajuda para completar o meu código SQL já que não está a dar os resultados que eu pretendia.
O código atual do meu SQL é:
1. SELECT A.Diferença, A.[ID Transação], A.Data, A.Número_Conta, Sum(B.Diferença) AS Saldo
2. FROM Consulta8 AS A
3. INNER JOIN Consulta8 AS B ON (A.Número_Conta=B.Número_Conta) AND (A.Data>=B.Data)
4. GROUP BY A.Diferença, A.[ID Transação], A.Data, A.Número_Conta, A.[ID Transação]
5. ORDER BY A.Número_Conta, A.Data DESC;
O problema pelo qual me encontro é que eu posso ter transações dentro do mesmo dia, só que se eu acrescentar à linha 3 AND (A.[ID Transação]>=[ID Transação]) não me irá calcular a soma acumulada por conta e por ordem descendente de data, vai dar outros resultados por causa da ordem do [ID Transação].
Isto porque dentro do mesmo dia, o [ID Transação] pode não estar ordenado.