plano de contas

30/01/2006

bom dia amigos,

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

Respostas

30/01/2006

Aroldo Zanela

Colega,

É só agrupar pela substring.


Responder Citar

06/02/2006

Fernando

como faria esse agrupamento


Responder Citar

06/02/2006

Aroldo Zanela

Colega,

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?


Responder Citar

06/02/2006

Fernando

so usando firebird e meus relatorio faço tudo na mão usando rdprint


Responder Citar

06/02/2006

Aroldo Zanela

Colega,

Por favor, coloque a estrutura das tabelas (DDL) para que possamos elaborar um exemplo prático.


Responder Citar

06/02/2006

Biohazard

cara eu tenho um programa de contabilidade prontinho. Se você quiser eu te passo... foi feito com o Firebir 1.5, dbexpress. Assim, ele não tá completo, mas dá para o que você quer


Responder Citar

06/02/2006

Fernando

Cadastro das Contas
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


Responder Citar

06/02/2006

Aroldo Zanela

Colega,

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



Responder Citar

06/02/2006

Fernando

SELECT CAST(SUBSTRING(plano_contas.Codigo FROM 1 FOR 1) 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 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


Responder Citar

06/02/2006

Aroldo Zanela

Colega,

Por favor, faça um teste sem as associações (joins). Se necessário, crie uma view para simplicar o relacionamento.


Responder Citar