Ir para conteúdo
rorlando

select em diversas tabelas

Recommended Posts

Bom dia!

tento fazer consulta em várias tabelas. tudo vai bem até a 3ª, a partir da 4ª a ampola da consulta fica rodando, mas não trás nenhum resultado. 

O código que estou utilizando para meu banco é o seguinte:

select so01.documento,so01.digito, so01.nome, so01.sexo, so01.situacao, so01.regional, 
       so01.categoria, so01.observacao, so01.tipo, so01.n_spprev, so02.endereco, so02.bairro, 
       so02.cidade, so02.estado, so02.cep, so02.aniversario,so03.rg, so03.cpf, so03.email, 
       so04.estado_civil, so04.ddd, so04.telefone, so04.graduacao, so04.nascimento, so04.admissao, 
       so04.admor
from so01, so02, so03, so04
where so01.documento=so02.documento 
and so01.documento=so03.documento 
and so01.documento=so04.documento
and so01.situacao <> 'demitido' 
and so01.tipo <> 'entidade'
order by so01.regional, so01.tipo

Quando não incluo a tabela so04 e suas referências eu obtenho o retorno.

alguém teria a solução para meu problema? mesmo que tenha que alterar todo o código.

Obrigado.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

As chaves de todos os relacionamentos foram informadas no "where" ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim Motta!

todas as tabelas tem um campo documento. Até consegui, com o comando, trazer os registros, mas demora muito para a resposta, além do que, existem documentos iguais, sendo diferenciados por um campo "dígito".

Sabe se existe uma outra forma para eu fazer os relacionamentos? e que fique com um código mais limpo e rápido?

Obrigado por enquanto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu!

Vou pesquisar mais e ver o que acho, pois não tenho o conhecimento necessário para resolver o problema.

Vamos caminhando.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por nicolasbessa
      Boa tarde!
       
      Como aplicar a regra abaixo em um select?

      Regra Join
      Quando o campo substr(x, 1,1)  ='1'
      montar a chave de pesquisa:
      y = '8' AND y1 =  'L'||lpad( x1, 2)) 

      Quando o campo substrt(x, 1,1) for igual ='A'
      montar a chave de pesquisa:
      y = '8' AND y1 =  'M'||lpad( x1, 2)) 
       
      obrigado!
    • Por teteuvec
      Prezados boa noite!
       
      Gostaria de ajuda com um problemas na pesquisa select do trecho abaixo. Devo estar errando na sintaxe.
       
      O erro que retorna é Unknown column 'link_record' in 'where clause', porém esta coluna existe!
       
      <td bgcolor="#F5F5F5"><?php $query_Recordset2 = "SELECT * FROM {$_SESSION['table_base']} WHERE `link_record` = {$data1['id']} AND `record_caracter_id` = '1' order by {$_SESSION['id_base']} DESC"; $Recordset2 = mysqli_query($connect, $query_Recordset2) or die(mysqli_error($connect)); $row_Recordset2 = mysqli_fetch_assoc($Recordset2); $totalRows_Recordset2 = mysqli_num_rows($Recordset2); while($data2 = mysqli_fetch_assoc($Recordset2)) { echo "Contato: ".$data2["name"]."</br>"; echo "CPF/CNPJ: ".$data2["cpf_cnpj"]."</br>"; echo "e-mail: ".$data2["email"]."</br>"; echo "Celular: ".$data2["cellphone"]."</br>"; echo "Telefone: ".$data2["telephone"]."</br>"; echo "Documento de identificação: ".$data2["name"]."</br>"; echo "</br>"; }?> </td>  
    • Por Omar~
      Estou precisando fazer uma query em uma tabela usando LIKE, mas preciso restringir que somente sejam mostrados os resultados cujo tenha uma das colunas idênticas.
      Exemplo de query (que está errada!!!)
      SELECT     coluna_A,     coluna_B,     coluna_C FROM     tabela WHERE     coluna_A LIKE '%ALGUM_VALOR%' OR     coluna_B LIKE '%ALGUM_VALOR%' AND     coluna_C = 'tenha esse valor' Então preciso pesquisar existência de "algum valor" dentro das colunas A e B da tabela, mas que sejam retornados apenas resultados cujo a coluna C seja apenas um valor, que pode duplicar de registro para registro, mas na mesma tabela possuem outros registros cujo a coluna C não são iguais.
       
      Obs.: Sempre fiz esse processo de filtrar o resultado via PHP, mas queria saber como fazer diretamente na query.

      #EDIT:
      Sendo mais específico
      Digamos registros mais ou menos assim:
       
      SELECT coluna_A, coluna_B, coluna_C FROM tabela WHERE coluna_A LIKE '%João%' OR coluna_B LIKE '%João% AND   coluna_C = 'Carpinteiro'
      Ou seja mesmo que que haja mais de um registro, somente é para trazer os resultados cujo a coluna C for carpinteiro
       
       
       
       
    • Por JoaoVituBR
      Olá pessoal, eu tenho uma duvida, no meu banco de dados eu tenho duas tabelas
      [usuarios]


      [users_items]

       
      e tenho uma área em meu site em que tem varias abas com o nome dos jogos que o usuário possui e que quando clicado lista todos os itens que está no inventario de cada jogo,
      mas eu gostaria de listar apenas os jogos em que esteja listado na tabela users_items para certo usuário.
       
    • Por Carlos Primo
      Olá, fiz um código VBA Sql para consultar dados de uma tabela e atribuí os valores dos dados em 3 variveis, porem uma das váriaveis não funciona corretamente.
      Os dados desta variavel que não funciona possui letras e números, pois os dados da tabela referente a esta variavel possui letras e números.
      Quando coloco o valor direto dentro do select o código funciona, mas com variável não da certo.
      Também funciona quando retiro esta variável.
      No código, o nome da variável é PREFIX
       
      O erro que aparece é esse:
      Run-time error '-2147217900 (80040e14)':
      [Microsoft][ODBC SQL Server Driver]  Invalid column name 'Y18HW'.

       
      Segue o código:
       
      Sub sb_RetornaConsulta()
       
      Application.ScreenUpdating = False
         
          Dim obj_Connection As New ADODB.Connection
          Dim obj_RecordSet As New ADODB.Recordset
          Dim str_SQL As String
          Dim str_PlanilhaDestino As String
          Dim str_ConnString As String
          Dim str_LinhaInicial As String
          Dim nr_coluna As Integer
          Dim Prefix As Variant
          Dim S_Inicia As Variant
          Dim S_Fina As Variant
          
           Prefix = frm_Serie.Pref.Value        'Valor do prefixo digitado no textbox da userform = Y18HW 
           S_Inicia = frm_Serie.S_Inicial.Value 'Valor do Inicial digitado no textbox da userform = 177781 
           S_Fina = frm_Serie.S_Final.Value     'Valor do Final digitado no textbox da userform = 179780
                
          str_PlanilhaDestino = "Resultado"
          str_ConnString = "Driver={SQL Server};server=NOME DO SERVER; Database=NOME DA BASE; UID=USUÁRIO;PWD=SENHA"
          str_LinhaInicial = 3
          
          
          
          str_SQL = "SELECT TABELA.NRSerie AS Serie, TABELA.BancadaID AS Bancada, " & _
                      " TABELA.ResQn AS Qn, TABELA.ResQt AS Qt, " & _
                      " TABELA.ResQm AS Qm, TABELA.Data AS [Data Produção] " & _
                      " FROM TABELA " & _
                      " WHERE TABELA.Serie >= " & S_Inicia & " " & _
                      " AND TABELA.Serie <= " & S_Fina & " "
                      " AND Tabela.Prefixo = " & Prefix & " " & _
                      " ORDER BY TABELA.NRSerie DESC "
              
          ' Limpa dados
          Sheets(str_PlanilhaDestino).Select
          Cells.Select
          Selection.ClearContents
          Range("A1").Select
       
          ' Executa query no SQL
          obj_Connection.Open str_ConnString
          obj_RecordSet.Source = obj_Connection
          obj_RecordSet.Open str_SQL, obj_Connection
              
          ' Inclui cabeçalhos da query:
          For nr_coluna = 0 To obj_RecordSet.Fields.Count - 1
              Worksheets(str_PlanilhaDestino).Cells(str_LinhaInicial, nr_coluna + 1).Value = obj_RecordSet.Fields(nr_coluna).Name
          Next
           
          ' Salva dados no Excel
          Sheets(str_PlanilhaDestino).Cells(CInt(str_LinhaInicial + 1), 1).CopyFromRecordset obj_RecordSet
       
          ' Finaliza conexão e objetos
          obj_RecordSet.Close
          obj_Connection.Close
          Set obj_RecordSet = Nothing
          Set obj_Connection = Nothing
           
           
           Application.ScreenUpdating = True
           
           frm_Serie.Hide
           
      End Sub
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.