Olá. Trabalho com Contabilidade e estou tendo dificuldade com uma consulta SQL. Tenho uma tabela de lançamentos contábeis e preciso fazer uma consulta que está me dando muita dor de cabeça. A tabela é formada pelos seguintes campos:
CodigoEmpresa CodigoLancamento DataLancamento ContaContabilDebito ContaContabilCredito ValorLancamento Historico
O meu objetivo é ter um relatório que vai me dar o somatório a débito e o somatório à crédito por mês para cada conta contábil da empresa selecionada.
Conta Contábil Competência Total Débito Total Crédito Saldo
Eu não sei a melhor maneira de fazer isso no SQL então estou resolvendo no programa, só que está demorando demais. Em alguns casos a consulta retorna uma lista com centenas de milhares de linhas e está muito ruim! Estou pegando os dados assim:
SELECT * FROM LancamentosContabeis WHERE CodigoEmpresa = XXX AND DataLancamento >= XX/XX/XXXX AND DataLancamento <= XX/XX/XXXX)
Nessa lista eu estou fazendo um Loop somando os valores para cada conta quando ela aparece em Débito e quando ela aparece em Crédito para cada mês.
Existe alguma forma de resolver isso no próprio SQL para que a consulta fique mais eficiente? Eu pensei em fazer sub-consultas mas quando comecei a fazer me perdi e a sintaxe do SQL ficou errada.
Detalhe: Existe a tabela de Contas Contábeis também com:
CodigoConta ClassificacaoConta DescricaoConta
Na tabela de Lançamentos um lançamento nunca vai ter a mesma conta no débito e no crédito, porém a mesma conta pode aparecer na parte de Débito em um lançamento e na parte de Crédito em outros lançamentos.
Por ser uma questão mais específica, não sei se posso tratar aqui, mas fiz os cursos de SQL e não consegui resolver meu problema. Se não puder, me desculpem o transtorno e gostaria de uma sugestão de algum fórum que possa me ajudar.
Desde já agradeço.