Consulta com várias tabelas

Pessoal, eu não sei como descrever a dúvida, mas vou tentar.

Eu tenho várias tabelas que se correspondem, por exemplo:

  1. tabela CLIENTE: contém os dados cadastrais dos clientes
  2. tabela REAJUSTES: contém o histórico de reajustes de honorários de cada cliente
  3. tabela OCORRENCIAS: contém o histórico de observações que minha equipe registra sobre cada cliente
    … entre outros detalhes.

Em resumo, a tabela CLIENTES é a tabela mestre e todas as demais giram em torno dela como detalhes.

O que eu preciso fazer é um formulário exclusivo de consulta daquele cliente selecionado na grid que mostre os dados cadastrais do cliente em um bloco, os reajustes daquele cliente em outro bloco e as ocorrências em outro bloco.

É possivel fazer isso no SC? Uma app com essas especificações? Eu conseguiria fazer isso usando ligações mestre-detalhes separadas em blocos?

Obrigado.

Crie no banco uma view com todas as informações de todas as tabelas com join e pronto, sua consulta estará pronta, depois use esta view e gere sua consulta.

E complementando o que Joelton disse, se a consulta ficar muito pesada no SC, criei uma view no banco com essa consulta e coloque a view no SC.

Ah, com certeza vou usar View. Mas a minha dúvida maior era se seria possivel usar mestre-detalhes das outras tabelas em blocos separados, pra não poluir a consulta.

Mas lembro que as demais tabelas certamente terão mais de 1 registro daquele cliente.

Use a view, e nas consultas tem a funcionalidade subconsulta… tranquilamente dá para usar…

pode fazer a view ou criar uma subconsulta, vai depender de como vc quer ver os dados

Bom dia pessoal. Sim, fiz uma view com as 2 grandes tabelas que se complementam com a intenção de criar sub-consultas em demais detalhes.

Porém, ao criar um form nesta view o SC reclama que “Falta definir um campo que seja Chave Primária”. Aí eu defino a chave primária e, ao executar a aplicação, ele passa a pedir o valor inicial dessa chave como se fosse uma variável global sem ter tido seu conteúdo inicializado.

Faça esse mini curso , te falta os fundamentos básicos:

View é somente para ser usada em grids, campos consulta SELECT, etc. não pode usar a view como
formulário para editar diretamente ela, teria que usar uma tabela temporária como ‘BRIDGE’, usando o campo INSERT INTO tbl1 (list_campos) SELECT list_campos FROM tbl2

Ou faça uma cosulta grid em MODO ‘SLIDE’ ai ele pode simular visualmente um formulário, usando blocos.

Bom dia Jailton.

A minha intenção não é editar dados.

De fato a primeira tela é um grid com poucas informações, apenas para podermos identificar a empresa. Na linha do grid temos um link pra ter acesso às informações totais da empresa. E é aí que eu pesei em chamar o formulário (100% read only) pra uma melhor apresentação dos campos.

1 Curtida

Show! Vou assistir esses mini cursos.

1 Curtida

Certíssimo @Jailton, além de tabelas temporárias, poderia também realizar ligações para um formulário e realizar edições… mas pelo que entendi, acho que é só visualização mesmo com subconsultas… os vídeos colocados pelo @ralphrangel, creio que resolverão o problema dele…

1 Curtida

Pessoal, por enquanto está dando certo.

Mesmo não sendo aconselhável, eu mantive o view no form mesmo assim. Simplesmente porque o intuito é 100% consulta.

Todos os mestre-detalhes também estão funcionando como eu previa. Porém, eu só não consegui usar uma grid como detalhe. Na verdade eu até consigo, mas o SC não dá a opção de filtrar pela chave, aí aparece os mesmos detalhes para todos os registros.

seguinte: para a filha: na aplicação consulta(grid), no sql vc deve colocar o parâmetro de filtro, exemplo

select clicodigo, clinome from cliente where cliregiao = ‘[regiao]’

na aplicação consulta (grid) “pai” vc chama a filha na subconsulta passando o parametro ‘[regiao]’ …