Consulta Mysql com geração de extrato

08/01/2021

0

Olá pessoal,

Estou com problema em uma consulta Mysql, vejam se conseguem me ajudar a entender onde esta o erro.

SELECT DATE_FORMAT(data_lancamento,''%d/%m/%Y'') AS data, DATE_FORMAT(data_nota,''%d/%m/%y'') AS data_nota, tipo_transacao,
(SELECT sb.nome_sub_categoria FROM sub_categorias_financeiro AS sb WHERE sb.id_sub_categoria = ex.id_sub_categoria) as descricao,
IF(tipo_transacao = ''D'', valor_transacao, '''') AS debito,
IF(tipo_transacao = ''C'', valor_transacao, '''') AS credito,
(SELECT SUM(IF(tipo_transacao = ''C'', valor_transacao, valor_transacao))
 FROM extrato sa WHERE sa.id_registro <= ex.id_registro) AS saldo
 FROM extrato AS ex WHERE ex.id_usuario = 1


A ideia da consulta é gerar um extrato, porem o valor que ela esta gerando é muito louco
Esta é saída da consulta, já no primeiro valor não da para entner de onde ele esta pegando estes 3300.9399 para somar aos 1000 iniciais

data data_nota tipo_transacao descricao debito credito saldo
04/01/2021 NULL C Deposito de saldo para operações 1000 4300.939999999999
05/01/2021 04/01/21 C Gain operações na bolsa 332.64 4633.579999999999
06/01/2021 05/01/21 C Gain operações na bolsa 212.85 4846.429999999999
07/01/2021 06/01/21 D Loss Operações na bolsa -393.68 4452.749999999999
08/01/2021 07/01/21 D Loss Operações na bolsa -497 3955.749999999999


Obrigado pela ajuda
Jorge Kania

Jorge Kania

Responder

Post mais votado

08/01/2021

Olá pessoal,

Logo após enviar a dúvida notei onde estava o erro, esqueci de referenciar o id do usuário na consulta da soma.

Obrigado

Jorge Kania

Jorge Kania
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar