Fórum Plano de contas com nível através de MySQL #431204
18/12/2012
0
<ol>
<li>Mantenção</li>
<ol>
<li>Operacionais</li>
<li>Não Operacionais</li>
<li>Outras Entradas</li>
</ol>
<li>Saídas</li>
<ol>
<li>Operacionais</li>
<li>Não Operacionais</li>
<li>Imobilizado</li>
<li>Investimentos</li>
</ol>
</ol>
Atualmente minha tabela está de maneira resumida assim:
CREATE TABLE plano_de_contas( id BIGINT NOT NULL AUTO INCREMENT PRIMARY KEY, master_id BIGINT, //armazena o id do plano pai descricao VARCHAR(20) );
Presumo que seja mais fácil organiza-la dessa maneira no próprio banco, pelo Delphi até dá pra fazer algo parecido com o JvDBTreeView, mas iremos portar a aplicação futuramente pra web, então ficaria bem mas flexível por SQL. Caso queiram que eu modifique a estrutura da tabela para ficar mais apropriada tem como fazer.
Abraços
Júnior Garcia
Curtir tópico
+ 0Posts
18/12/2012
William
Manutenção | Operacionais Manutenção | Não Operacionais Manutenção | Outras Entradas Saídas | Operacionais Saídas | Não Operacionais Saídas | Imobilizado Saídas | Investimentos
Gostei + 0
18/12/2012
Júnior Garcia
abraço.
Gostei + 0
18/12/2012
William
Gostei + 0
18/12/2012
Júnior Garcia
Gostei + 0
18/12/2012
William
- Tabela plano_pai
ID | DESCRICAO 1 | MANUTENÇÃO 2 | SAÍDAS
- Tabela plano_contas
ID | DESCRICAO | MASTER_ID 1 | OPERACIONAIS | 1 2 | NÃO OPERACIONAIS | 1 3 | OUTRAS ENTRADAS | 1 4 | OPERACIONAIS | 2 5 | NÃO OPERACIONAIS | 2 6 | IMOBILIZADO | 2 7 | INVESTIMENTOS | 2
Montei a seguinte instrução SQL:
SELECT p.descricao AS Plano_Pai, c.descricao as Plano_Contas FROM plano_contas c INNER JOIN plano_pai p ON c.master_id = p.id
Resultado:
PLANO_PAI | PLANO_CONTAS Manutenção | Operacionais Manutenção | Não Operacionais Manutenção | Outras Entradas Saídas | Operacionais Saídas | Não Operacionais Saídas | Imobilizado Saídas | Investimentos
Veja se consegui entender sua dúvida e resolve-la.
Gostei + 0
19/12/2012
Júnior Garcia
Manutenção | Manutenção //o master_id aqui é NULL no banco, mas repete como sendo o master o mesmo da categoria atual Manutenção | Outras Entradas Manutenção | Operacionais Saídas | Saídas //repete denovo Saídas | Imobilizado ...
Como faz pra ele parar de dizer que o master é o mesmo que o atual qdo o campo é NULL?
Gostei + 0
19/12/2012
William
SELECT p.descricao AS Plano_Pai, c.descricao as Plano_Contas FROM plano_contas c LEFT JOIN plano_pai p ON c.master_id = p.id
Gostei + 0
19/12/2012
Júnior Garcia
Meu SQL está assim:
SELECT p.descricao AS plano_master, p.id AS id_master, c.descricao AS plano_conta, c.id AS id_plano FROM plano_de_contas c INNER JOIN plano_de_contas p on (c.master_id = p.id) ORDER BY c.master_id
O resultado é esse:
[code]
plano_master id_master plano_conta id_plano
Manutenção 1 Manutenção 1
Manutenção 1 Outras Entradas 5
Manutenção 1 Não Operacionais 4
Manutenção 1 Operacionais 3
Saídas 2 Saídas 2
Saídas 2 Não Operacionais 7
Saídas 2 Imobilizado 8
Saídas 2 Investimentos 9
Saídas 2 Não Operacionais 10
Saídas 2 Operacionais 6
Gostei + 0
19/12/2012
William
Achei que esses planos só estivessem cadastrados na tabela Plano_Pai!
Gostei + 0
19/12/2012
Júnior Garcia
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)