plano de contas
30/01/2006
0
preciso montar um plano de contas e gostaria de saber se alguem ja fez algum, pq a maior dificuldade que encontro sao reunir os valores das contas pai tipo
valor total 100.00 que esta distribuidora nas seguintes contas
[b:207b90dd91]1----------100,00[/b:207b90dd91]
[b:207b90dd91]1.1............. 20,00[/b:207b90dd91]
1.1.1.......... 5,00
1.1.2.......... 15,00
[b:207b90dd91]1.2----------50,00[/b:207b90dd91]
[b:207b90dd91]1.3----------30,00[/b:207b90dd91]
1.3.1.............10,00
1.3.2.............15,00
1.3.3.............. 5,00
pq tenho que somar e jogar os valores nas contas cabeças(pai)
Fernando
Posts
06/02/2006
Aroldo Zanela
Existem diversas formas de resolver. Desde o agrupamento na instrução SQL ou no próprio relatório. Qual é o banco de dados e qual gerador de relatórios está utilizando?
06/02/2006
Fernando
06/02/2006
Aroldo Zanela
Por favor, coloque a estrutura das tabelas (DDL) para que possamos elaborar um exemplo prático.
06/02/2006
Biohazard
06/02/2006
Fernando
Conta Varchar(4)
descricao varchar(30)
Movimentação
Conta Varchar(4)
Valor Numeric(9,3)
1----------100,00
1.1............. 20,00
1.1.1.......... 5,00
1.1.2.......... 15,00
1.2----------50,00
1.2.1----------50,00
1.3----------30,00
1.3.1.............10,00
1.3.2.............15,00
1.3.3.............. 5,00
primeiro cadastro as contas , depois faço a movimentação
so lanço as contas filhas tipo 1.1.1 ou 1.1.2, 1.1.3 e nunca as contas cabeças
06/02/2006
Aroldo Zanela
SELECT CAST(SUBSTRING(CONTA FROM 1 FOR 1) AS CHAR(4)) AS CONTA, SUM(VALOR) AS VALOR FROM MOVIMENTACAO GROUP BY SUBSTRING(CONTA FROM 1 FOR 1) UNION ALL SELECT CAST(SUBSTRING(CONTA FROM 1 FOR 2) AS CHAR(4)) AS CONTA, SUM(VALOR) AS VALOR FROM MOVIMENTACAO GROUP BY SUBSTRING(CONTA FROM 1 FOR 2) UNION ALL SELECT CONTA AS CHAR(4) AS CONTA, VALOR FROM MOVIMENTACAO ORDER BY CONTA
06/02/2006
Fernando
SUM(mov_caixa.dinheiro) AS VALOR
FROM mov_Caixa
inner join conta on (conta.codigo=mov_caixa.conta)
inner join plano_contas on (plano_contas.conta = conta.codigo)
GROUP BY SUBSTRING(plano_contas.Codigo FROM 1 FOR 1)
UNION ALL
SELECT CAST(SUBSTRING(plano_contas.Codigo FROM 1 FOR 3) AS CHAR(5)) AS CONTA,
SUM(mov_caixa.dinheiro) AS VALOR
FROM mov_caixa
inner join conta on (conta.codigo=mov_caixa.conta)
inner join plano_contas on (plano_contas.conta = conta.codigo)
GROUP BY SUBSTRING(plano_contas.codigo FROM 1 FOR 3)
UNION ALL
SELECT CAST(SUBSTRING(plano_contas.Codigo FROM 1 FOR 5) AS CHAR(5)) AS CONTA,
SUM(mov_caixa.dinheiro) AS VALOR
FROM mov_caixa
inner join conta on (conta.codigo=mov_caixa.conta)
inner join plano_contas on (plano_contas.conta = conta.codigo)
GROUP BY SUBSTRING(plano_contas.codigo FROM 1 FOR 5)
dessa forma funcionou normal, so que ficou com um problema
as contas cabeças ele mostra 3 vezes, pq possui 3 sql
como faria para resolver esse problema
as contas sao gravadas ja com as mascaras
1
1.1.1
1.1.2
1.1.3
2
2.1
2.1.1
2.1.2
valeu
06/02/2006
Aroldo Zanela
Por favor, faça um teste sem as associações (joins). Se necessário, crie uma view para simplicar o relacionamento.
Clique aqui para fazer login e interagir na Comunidade :)