Fórum Duvida construção de Consulta sql Plano de Contas #60768

04/08/2009

0

Tenho uma tabela de Centro de custo desta forma CODCCUSTO – String 12 DESCRIÇÃO - String 50

Tenho outra Tabela Contas

N_DOCUMENTO – String 30
CODCCUSTO – Chave Estrangeira da tabela Centro de Custo Valor_Documento – Numeric (15,2)


Dentro da tabela centro de custo tem os seguintes cadastros
1.Receita
1.1Vendas Internas
1.1.1Escola
1.1.2Escritório
1.2Vendas Externas
1.2.1Livro
1.2.2Brinquedos

2.Despesas
2.1Fornecedores
2.1.1– Nacional
2.1.2– Importado
2.2 – Escritório
2.2.1 – Materiais de limpeza
2.2.2 – Materiais de Escritório

Tenho que montar um relatório que totalize por níveis todas as contas lançadas O centro de custo sempre vai ser lançada no ultimo nível ou seja no 1.1.1 ou 1.2.1 etc

Exemplo:

Lançamentos :

R$ 50,00 centro de custo:1.1.2 Escritório
R$ 100,00 centro de custo :1.2.2 Brinquedos

Relatório

1 Receitas R$ 150,00
1.1Vendas Internas R$ 50,00
1.2 Vendas Externas R$ 100,00

Se alguém puder me dar uma dica agradeço,

Obs.: Uso FireBird 1.5.4


Hugo Fabrício


Hugo_fabricio

Hugo_fabricio

Responder

Posts

05/08/2009

Hugo_fabricio

Bom pessoal consegui resolver o problema com esta sql:
vou deixar aqui para se algum precisar de algo parecido.

Select
SubString(DP.CODCCUSTO from 1 for 1) as FNivel,
sum(DP.valordup), CC.DESCRICAO
from DUPLICATA DP
left join CCUSTO CC on CC.CODCCUSTO = SubString(DP.CODCCUSTO from 1 for 1)
group by SubString(DP.CODCCUSTO from 1 for 1),CC.DESCRICAO

union

Select
SubString(DP.CODCCUSTO from 1 for 2) as FNivel,
sum(DP.valordup), CC.DESCRICAO
from DUPLICATA DP
left join CCUSTO CC on CC.CODCCUSTO = SubString(DP.CODCCUSTO from 1 for 2)
group by SubString(DP.CODCCUSTO from 1 for 2),CC.DESCRICAO

union

Select
SubString(DP.CODCCUSTO from 1 for 4) as FNivel,
sum(DP.valordup), CC.DESCRICAO
from DUPLICATA DP
left join CCUSTO CC on CC.CODCCUSTO = SubString(DP.CODCCUSTO from 1 for 4)
group by SubString(DP.CODCCUSTO from 1 for 4),CC.DESCRICAO


Responder

Gostei + 0

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

Aceitar