BUSCA DADOS DA MESMA TABELA NO ACCESS (INNER JOIN)
Boa noite Galera!
seguinte, estou tentando uma forma de buscar os dados e gravar da melhor forma
tenho um BD no access que possui algumas tabelas, TabClientes, TabAdvogados e um form com algumas TabControls, nestas tabControl eu busco os dados já cadastrado em outro form dos clientes e advogados, porem tanto o advogado de defesa e advogado de acusação estão na mesma tabAdvogados no access, assim como os cliente de acusação e defesa. Meu sistema eu seleciono e trago as informações nos forms e tabcontrol, mas eu não estou conseguindo raciocinar para gravar apenas os codCliente e codAdvogado e uma nova tabQualquer no banco do access e quando buscar as informações eu uso o comando SQL Inner Join.
a dúvida é como buscar com inner join ou outro meio as informações de forma rápida e correta, pois buscar um cliente, um fornecedor, um advogado em cada uma das sua tabelas é tranquilo, mas quando tenho que buscar os dados de dois cliente em uma única tabela no access, lembrando que ele pode ser o cliente de defesa ou de acusação e trazer os dois pra tela em suas respectivas tabcontrol
seguinte, estou tentando uma forma de buscar os dados e gravar da melhor forma
tenho um BD no access que possui algumas tabelas, TabClientes, TabAdvogados e um form com algumas TabControls, nestas tabControl eu busco os dados já cadastrado em outro form dos clientes e advogados, porem tanto o advogado de defesa e advogado de acusação estão na mesma tabAdvogados no access, assim como os cliente de acusação e defesa. Meu sistema eu seleciono e trago as informações nos forms e tabcontrol, mas eu não estou conseguindo raciocinar para gravar apenas os codCliente e codAdvogado e uma nova tabQualquer no banco do access e quando buscar as informações eu uso o comando SQL Inner Join.
a dúvida é como buscar com inner join ou outro meio as informações de forma rápida e correta, pois buscar um cliente, um fornecedor, um advogado em cada uma das sua tabelas é tranquilo, mas quando tenho que buscar os dados de dois cliente em uma única tabela no access, lembrando que ele pode ser o cliente de defesa ou de acusação e trazer os dois pra tela em suas respectivas tabcontrol
não compreendi bem, mas pra clarear, inner seja qual for a extensão, é união de tabelas, não busca dentro da mesma.....
pelo q entendi q quer buscar 2 registros na mesma tabela, vai precisar de um select melhorado mesmo
um exemplo nesse seu caso seria se tivesse uma terceira tabela de processos, onde tivesse um campo de codadvogado, e codcliente, ai usaria um inner com essas três tabelas, ou ainda mais inners pra buscar as duas partes no processo
select processo.*,advogado.*,cliente.* from ((processo inner join advogado on processo.advogado=advogado.codigo)innerjoin cliente on processo.cliente=cliente.codigo)
algo +ou-assim, e ampliando pegar as 2 partes...processo.advogadoA=advogado.codigo)innerjoin cliente on processo.clienteA=cliente.codigo)innerjoin cliente on processo.clienteD=cliente.codigo
pelo q entendi q quer buscar 2 registros na mesma tabela, vai precisar de um select melhorado mesmo
um exemplo nesse seu caso seria se tivesse uma terceira tabela de processos, onde tivesse um campo de codadvogado, e codcliente, ai usaria um inner com essas três tabelas, ou ainda mais inners pra buscar as duas partes no processo
select processo.*,advogado.*,cliente.* from ((processo inner join advogado on processo.advogado=advogado.codigo)innerjoin cliente on processo.cliente=cliente.codigo)
algo +ou-assim, e ampliando pegar as 2 partes...processo.advogadoA=advogado.codigo)innerjoin cliente on processo.clienteA=cliente.codigo)innerjoin cliente on processo.clienteD=cliente.codigo
Amigo Vc tem que fazer da seguinte forma
Select A.Nome, A.Fone from advogados as A where A.Tipo [ô]Defesa[ô] andprocesso = [num] Union Select B.Nome, B.fone from Advogados as B where B.Tipo = [ô]Acusação[ô] and Processo = [Num]
Veja que eu usei campos fictÃcios.
O segredo é vc usar um alias para identificar a tabela quando quiser fazer mais de um acesso a mesma tabela na mesma consulta;
Evidentemente que haveriam outros modos de fazer essa consulta
Mas para o que vc expôs essa é uma solução
Select A.Nome, A.Fone from advogados as A where A.Tipo [ô]Defesa[ô] andprocesso = [num] Union Select B.Nome, B.fone from Advogados as B where B.Tipo = [ô]Acusação[ô] and Processo = [Num]
Veja que eu usei campos fictÃcios.
O segredo é vc usar um alias para identificar a tabela quando quiser fazer mais de um acesso a mesma tabela na mesma consulta;
Evidentemente que haveriam outros modos de fazer essa consulta
Mas para o que vc expôs essa é uma solução
Galera, Boa tarde !
acho que não me expressei corretamente eu tenho um cadastro de processo judicial e nele eu tenho um cadastro separado para cadastrar o cliente e outro para o advogado. Quando incluo um novo processo eu seleciono e trago a informação do cliente que quero e depois seleciono o advogado para esse cliente e digito o restante do dados do processo normalmente, o que nao estou conseguindo fazer é após buscar esses dados (cliente e advogado) eu preciso salvar no processo e é ai que nao sei fazer, como eu salvo e depois trago toda informação ja com o processo completo preenchido.
por isso pensei no SELECT e INNER JOIN (pelo que pesquisei na internet), mas como nunca havia mexido com ele eu nao estou entendendo muito bem.
ou a solução seria criar os mesmos campos que tenho na tab_Cliente e tab_Advogado e após a busca salvar na tab_Processo ai quando eu fizesse a busca do processo completo preenchido, buscaria as informações depois de salvo na tab_Processo, mas acho que assim ficaria um pouco pesado
acho que não me expressei corretamente eu tenho um cadastro de processo judicial e nele eu tenho um cadastro separado para cadastrar o cliente e outro para o advogado. Quando incluo um novo processo eu seleciono e trago a informação do cliente que quero e depois seleciono o advogado para esse cliente e digito o restante do dados do processo normalmente, o que nao estou conseguindo fazer é após buscar esses dados (cliente e advogado) eu preciso salvar no processo e é ai que nao sei fazer, como eu salvo e depois trago toda informação ja com o processo completo preenchido.
por isso pensei no SELECT e INNER JOIN (pelo que pesquisei na internet), mas como nunca havia mexido com ele eu nao estou entendendo muito bem.
ou a solução seria criar os mesmos campos que tenho na tab_Cliente e tab_Advogado e após a busca salvar na tab_Processo ai quando eu fizesse a busca do processo completo preenchido, buscaria as informações depois de salvo na tab_Processo, mas acho que assim ficaria um pouco pesado
onde vão os dados do processo vc tem q por um campo pro id do cliente e um pro id do advogado....na hora q salvar, além dos dados do processo, precisa incluir esses 2 ids
na busca vai fazer um inner join da tabela dos dados do processo c a tabela cliente, onde id_cliente=id da tabela clientes, e o mesmo pro advogado id_advogado =id da tabela advogado
na busca vai fazer um inner join da tabela dos dados do processo c a tabela cliente, onde id_cliente=id da tabela clientes, e o mesmo pro advogado id_advogado =id da tabela advogado
Faça seu login para responder