Página 1 de 1
Soma não bate
Enviado: 27 Set 2021 22:16
por JoséQuintas
A idéia é:
em 1, somar tudo que é 1xxxx
em 11, somar tudo que é 11xxxxx
em 1101, somar tudo que é 1101xxxx
mas não bateu
o dígito de controle é a posição 12, por isso substr( codigo, 1, 11 ) e mais o trim()
Soma não bate
Enviado: 27 Set 2021 22:35
por JoséQuintas
Resolvido.
Faltou filtrar somente conta analítica.
Soma não bate
Enviado: 27 Set 2021 23:08
por JoséQuintas
Código: Selecionar todos
CREATE PROCEDURE ze_ContabilExemploSintetica()
BEGIN
SELECT
jpctconta.idctconta,
TRIM( SUBSTR( jpctconta.cpcodigo, 1, 11 ) ) AS geral,
jpctconta.cpnome, SUM( b.saldo ) AS valor
FROM jpctconta
LEFT JOIN
( SELECT trim(SUBSTR(a.cpcodigo,1,11)) as analitica,
ze_ContabilSaldoAtual( a.idctconta, NOW() ) AS saldo
FROM jpctconta AS A
WHERE cptipo='A'
) AS b ON TRIM( SUBSTR( jpctconta.cpcodigo, 1, 11 ) ) = SUBSTR(b.analitica,1,LENGTH(TRIM( SUBSTR( jpctconta.cpcodigo, 1, 11 ) )) )
GROUP BY jpctconta.idctconta
HAVING valor != 0
ORDER BY geral;
END
Transformado em procedure, só pra ficar guardado em algum lugar.
Soma não bate
Enviado: 29 Set 2021 10:36
por JoséQuintas
Resolvi simplificar de vez:
Removi o dígito de controle e não precisa mais SUBSTR( xxx, 1, 11 )
E nas configurações em geral, passei a usar o Id.
Tudo mais simples assim.
Dando uma geral no aplicativo sem mexer em fonte Harbour kkkkk
Soma não bate
Enviado: 29 Set 2021 11:18
por JoséQuintas
Código: Selecionar todos
CREATE PROCEDURE ze_ContabilBalancete( nMes INT(11), nFechamento INT(11), nGrau INT(11 ), nZerado INT(11) )
BEGIN
SELECT
JPCTCONTA.IDCTCONTA,
JPCTCONTA.CPCODIGO,
JPCTCONTA.CPNOME, SUM( b.saldo ) AS valor
FROM JPCTCONTA
LEFT JOIN
( SELECT A.CPCODIGO as analitica,
ze_ContabilSaldoAtual( A.IDCTCONTA, NOW() ) AS saldo
FROM JPCTCONTA AS A
WHERE CPTIPO = 'A'
) AS b ON JPCTCONTA.CPCODIGO = SUBSTR( b.analitica, 1, LENGTH( JPCTCONTA.CPCODIGO ) )
GROUP BY JPCTCONTA.IDCTCONTA
HAVING valor != 0
ORDER BY geral;
END
Ficou mais simples sem o dígito na posição 12.
É que comecei a ver que ia ter que fazer isso em tudo que é rotina... então assim simplifica todas.