Saldo Anterior Cabeçalho [RESOLVIDO]

Olá Pessoal, estou implementando um extrato bancário:

Tenho uma tabela no Mysql tipo (Crédito ou Débito) e valor.

Na Grid seto o seguinte select:

SELECT DATE_FORMAT(data,'%d/%m/%Y') AS data, IF(tipo = 'D', valor, '') AS debito, IF(tipo = 'C', valor, '') AS credito, (SELECT SUM(IF (tipo = 'C', valor, -valor)) FROM Lancamento2 L2 WHERE L2.id <= Lancamento2.id) AS saldo FROM Lancamento2

Captura de Tela 2022-05-03 às 19.58.53

Gostaria de mostrar no cabeçalho da GRID o saldo anterior.

Por exemplo se eu for fazer um filtro com o Mês 3 o Saldo do Mês 2 seria 150 e ficaria no cabeçalho ou até mesmo na primeira linha da grid.

Defina o saldo anterior em uma variável global

[Anterior] = xxx

Defina um campo do cabeçalho como valor e atribua-o [Anterior]

Minha dúvida é como implementar isso

Entendi que deveria criar um campo na grid que será exibido no teu extrato.
Recupere o valor do saldo anterior e atribua esse valor a esse campo ou a var global.
Não sei se ajudei :+1:

How to do the SQL queries or how to display the information

Como seria esse select?

SELECT SUM(IF(tipo = ‘C’, valor, -valor)) AS Previous FROM Lancamento2 WHERE data < ‘[Filter]’;

O valor do Filtro deve ser formatado para corresponder à configuração regional do seu servidor

Olá Jean, show de bola está vindo certinho.

O estranho que não estou conseguindo trazer um mês específico por ex mês de MAIO:

SELECT SUM(IF(tipo = ‘C’, valor, -valor)) AS Previous FROM Lancamento2 WHERE DATA < month(data)=‘5’;

O resultado é nulo.

Mas se eu pego o ano ou o Mês atual ele traz

SELECT SUM(IF(tipo = 'C', valor, -valor)) AS Previous FROM Lancamento2 WHERE month(data)< month(NOW())

ANO ATUAL

SELECT SUM(IF(tipo = 'C', valor, -valor)) AS Previous FROM Lancamento2 WHERE YEAR(data)< YEAR(NOW())

É normal receber null

month(data) = '5' retorna verdadeiro ou falso

DATA < true ou data < false retornará null

Você tem que fazer WHERE month(data) < 5