Inquiridor
Fazer buscas sqlite por hierarquia

Pergunta
-
Olá
Desenvolvi um gerenciador financeiro onde salvo as contas a pagar em uma tabela SQLite com digamos Fornecedor, vencimento, valor e plano de conta (Ex.: Manutenção Veículos, Despesas Escritório etc...)Até aí tudo bem, posso fazer uma pesquisa por "Despesas Escritório" e tudo certo, mas a questão agora é adicionar sub grupos (hierarquia) aos planos de conta. Ex.
Despesas Escritório > Folhas Oficio > Timbradas
Despesas Escritório > Canetas
Quando faço uma busca "WHERE PlanoConta LIKE @DespesasEscritorio" deverá exibir também Folhas Oficio, Timbradas, Canetas
e assim por diante.
Não consigo pensar como fazer, quem puder me ajudar agradeço.
Todas as Respostas
-
Olá Eliseu,
Como você estruturou essa hierarquia? Como está a estrutura das suas tabelas que contém o plano de contas e a respectiva hierarquia?
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MVP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco -
Olá André
Na verdade eu tenho a tabela com nome GrupoCategorias com coluna Nome.
Dentro desta tabela eu salvo todos os grupos de categorias, ex.:
ID Nome
1 Formas de Pagamento
2 Bancos
3 Plano de Contas
Então eu tenho outra tabela com nome Categorias com colunas Nome e GrupoCategoriaID. Nesta eu salvo todas as categorias juntas, apenas informando a ID do GrupoCategoria:
ID Nome GrupoCategoriaID
1 Dinheiro 1
2 Cheque 1
3 Banrisul 2
4 Boleto 1
5 Desp. Escritorio 3
Então quando faço uma busca uso a ID do GrupoCategoria (GrupoCategoriaID).
Em contas a pagar eu também incluo uma coluna com a ID da categoria. Ex.: ID 5 (Desp. Escritorio) e quando faço uma busca eu filtro por ID 5:
SELECT * FROM ContasPagar WHERE CategoriaID LIKE '5'
- Editado Eliseu5 quarta-feira, 11 de janeiro de 2017 21:35
-
Acredito que uma solução para você seria a utilização de recursão para realizar a consulta nas subcategorias.
Aqui você encontra um bom artigo sobre CTE: https://blog.sqlauthority.com/2012/04/24/sql-server-introduction-to-hierarchical-query-using-a-recursive-cte-a-primer/
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MVP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta Robson William SilvaModerator segunda-feira, 16 de janeiro de 2017 12:59
- Não Marcado como Resposta Eliseu5 sexta-feira, 3 de março de 2017 18:29
-
Olá André
Agradeço por seu interesse em me ajudar. Li todo o conteúdo sugerido, no entanto não entendi como pode ser aplicado ao meu código.
Eu poderia salvar com IDs como 1.1.1, 2.0, 3.1. etc, aprofundando o nível, mas e como fazer as buscas?