none
Converter numero em texto - Código da Chave estrangeira pegando um campo da tabela. RRS feed

  • Pergunta

  • Bom dia ,

    Numa consulta SQL onde o campo de uma tabela é atendimento e está vinculada na tabela Localização, porém usamos a Localização também para buscar dados.

    Só que no campo de atendimento a consulta me trás o código reduzido na tabela Localização e não a descrição da Localização.

    Segue a query:

                                                          

    SELECT    
             APLIC.TAG,
             APLIC.DESCRICAO,
             APLIC.MODELO,                                                                                    
             APLIC.NUMSER,
             APLIC.NUMPAT,
             APLIC.U_CAPVALOR,
             APLIC.OBS AS 'OBSERVACAO',
             LOCAPLIC.DESCRICAO  AS LOCAL,
    APLIC.R_LOCAPLIC_CODLOCAPL AS ATENDIMENTO, /esse campo é o mesmo da tabela acima Locaplic porem ta amarrada no código e estou querendo converter para descrição. Quando executo a consulta me trás o código e não o nome.

             FORNECEDOR.NOMFAN MARCA,
             UNIDADE.TAG UNID,
             CLIENTE.RAZSOC AS 'CLIENTE',
             FILIAL.RAZSOC AS 'FILIAL'                                                       

         FROM APLIC
                INNER JOIN FILIAL ON APLIC.CODEMP=FILIAL.CODEMP AND APLIC.CODFIL=FILIAL.CODFIL
                LEFT OUTER JOIN FORNECEDOR ON APLIC.CODFOR_1=FORNECEDOR.CODFOR 
                LEFT OUTER JOIN UNIDADE ON APLIC.R_UNIDADE_CODUNI=UNIDADE.CODUNI
                LEFT OUTER JOIN CLIENTE ON APLIC.CODCLI=CLIENTE.CODCLI
                LEFT OUTER JOIN LOCAPLIC ON APLIC.CODLOCAPL=LOCAPLIC.CODLOCAPL 
                LEFT OUTER JOIN TIPAPLIC ON APLIC.CODTIPAPL=TIPAPLIC.CODTIPAPL 

         WHERE APLIC.CODEMP=91
           AND APLIC.CODFIL=140

    terça-feira, 14 de fevereiro de 2017 12:49

Respostas

  • Cometi um erro ao digitar. Experimente dessa forma:

    SELECT    
             APLIC.TAG,
             APLIC.DESCRICAO,
             APLIC.MODELO,                                                                                    
             APLIC.NUMSER,
             APLIC.NUMPAT,
             APLIC.U_CAPVALOR,
             APLIC.OBS AS 'OBSERVACAO',
             LOCAPLIC.DESCRICAO AS LOCAL,
             R_LOCAPLIC.DESCRICAO AS ATENDIMENTO,
             FORNECEDOR.NOMFAN MARCA,
             UNIDADE.TAG UNID,
             CLIENTE.RAZSOC AS 'CLIENTE',
             FILIAL.RAZSOC AS 'FILIAL'                                                       
    
         FROM APLIC
                INNER JOIN FILIAL ON APLIC.CODEMP=FILIAL.CODEMP AND APLIC.CODFIL=FILIAL.CODFIL
                LEFT OUTER JOIN FORNECEDOR ON APLIC.CODFOR_1=FORNECEDOR.CODFOR 
                LEFT OUTER JOIN UNIDADE ON APLIC.R_UNIDADE_CODUNI=UNIDADE.CODUNI
                LEFT OUTER JOIN CLIENTE ON APLIC.CODCLI=CLIENTE.CODCLI
                LEFT OUTER JOIN LOCAPLIC ON APLIC.CODLOCAPL=LOCAPLIC.CODLOCAPL 
                LEFT OUTER JOIN TIPAPLIC ON APLIC.CODTIPAPL=TIPAPLIC.CODTIPAPL 
    
                LEFT OUTER JOIN LOCAPLIC AS R_LOCAPLIC 
                    ON APLIC.R_LOCAPLIC_CODLOCAPL=R_LOCAPLIC.CODLOCAPL 
    
         WHERE APLIC.CODEMP=91
           AND APLIC.CODFIL=140

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 14 de fevereiro de 2017 13:48

Todas as Respostas

  • Bom dia,

    Pelo que eu entendi vai ser necessário adicionar mais um (Left) Join na sua query.

    Experimente dessa forma:

    SELECT    
             APLIC.TAG,
             APLIC.DESCRICAO,
             APLIC.MODELO,                                                                                    
             APLIC.NUMSER,
             APLIC.NUMPAT,
             APLIC.U_CAPVALOR,
             APLIC.OBS AS 'OBSERVACAO',
             LOCAPLIC.DESCRICAO AS LOCAL,
             R_LOCAPLIC.DESCRICAO AS ATENDIMENTO,
             FORNECEDOR.NOMFAN MARCA,
             UNIDADE.TAG UNID,
             CLIENTE.RAZSOC AS 'CLIENTE',
             FILIAL.RAZSOC AS 'FILIAL'                                                       
    
         FROM APLIC
                INNER JOIN FILIAL ON APLIC.CODEMP=FILIAL.CODEMP AND APLIC.CODFIL=FILIAL.CODFIL
                LEFT OUTER JOIN FORNECEDOR ON APLIC.CODFOR_1=FORNECEDOR.CODFOR 
                LEFT OUTER JOIN UNIDADE ON APLIC.R_UNIDADE_CODUNI=UNIDADE.CODUNI
                LEFT OUTER JOIN CLIENTE ON APLIC.CODCLI=CLIENTE.CODCLI
                LEFT OUTER JOIN LOCAPLIC ON APLIC.CODLOCAPL=LOCAPLIC.CODLOCAPL 
                LEFT OUTER JOIN TIPAPLIC ON APLIC.CODTIPAPL=TIPAPLIC.CODTIPAPL 
    
                LEFT OUTER JOIN LOCAPLIC AS R_LOCAPLIC ON APLIC.R_LOCAPLIC_CODLOCAPL=LOCAPLIC.CODLOCAPL 
    
         WHERE APLIC.CODEMP=91
           AND APLIC.CODFIL=140

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 14 de fevereiro de 2017 13:00
  • Bom dia,

    Obrigado pelo retorno, mas não funcionou. Quando executo a consulta ele fica processando até dar a mensagem falta de memória. R_LOCAPLIC.CODLOCAPL não é uma tabela e sim um campo da tabela APLIC amarrado a tabela LOCAPLIC.

    terça-feira, 14 de fevereiro de 2017 13:19
  • Cometi um erro ao digitar. Experimente dessa forma:

    SELECT    
             APLIC.TAG,
             APLIC.DESCRICAO,
             APLIC.MODELO,                                                                                    
             APLIC.NUMSER,
             APLIC.NUMPAT,
             APLIC.U_CAPVALOR,
             APLIC.OBS AS 'OBSERVACAO',
             LOCAPLIC.DESCRICAO AS LOCAL,
             R_LOCAPLIC.DESCRICAO AS ATENDIMENTO,
             FORNECEDOR.NOMFAN MARCA,
             UNIDADE.TAG UNID,
             CLIENTE.RAZSOC AS 'CLIENTE',
             FILIAL.RAZSOC AS 'FILIAL'                                                       
    
         FROM APLIC
                INNER JOIN FILIAL ON APLIC.CODEMP=FILIAL.CODEMP AND APLIC.CODFIL=FILIAL.CODFIL
                LEFT OUTER JOIN FORNECEDOR ON APLIC.CODFOR_1=FORNECEDOR.CODFOR 
                LEFT OUTER JOIN UNIDADE ON APLIC.R_UNIDADE_CODUNI=UNIDADE.CODUNI
                LEFT OUTER JOIN CLIENTE ON APLIC.CODCLI=CLIENTE.CODCLI
                LEFT OUTER JOIN LOCAPLIC ON APLIC.CODLOCAPL=LOCAPLIC.CODLOCAPL 
                LEFT OUTER JOIN TIPAPLIC ON APLIC.CODTIPAPL=TIPAPLIC.CODTIPAPL 
    
                LEFT OUTER JOIN LOCAPLIC AS R_LOCAPLIC 
                    ON APLIC.R_LOCAPLIC_CODLOCAPL=R_LOCAPLIC.CODLOCAPL 
    
         WHERE APLIC.CODEMP=91
           AND APLIC.CODFIL=140

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    terça-feira, 14 de fevereiro de 2017 13:48
  • Cometi um erro ao digitar. Experimente dessa forma:

    SELECT    
             APLIC.TAG,
             APLIC.DESCRICAO,
             APLIC.MODELO,                                                                                    
             APLIC.NUMSER,
             APLIC.NUMPAT,
             APLIC.U_CAPVALOR,
             APLIC.OBS AS 'OBSERVACAO',
             LOCAPLIC.DESCRICAO AS LOCAL,
             R_LOCAPLIC.DESCRICAO AS ATENDIMENTO,
             FORNECEDOR.NOMFAN MARCA,
             UNIDADE.TAG UNID,
             CLIENTE.RAZSOC AS 'CLIENTE',
             FILIAL.RAZSOC AS 'FILIAL'                                                       
    
         FROM APLIC
                INNER JOIN FILIAL ON APLIC.CODEMP=FILIAL.CODEMP AND APLIC.CODFIL=FILIAL.CODFIL
                LEFT OUTER JOIN FORNECEDOR ON APLIC.CODFOR_1=FORNECEDOR.CODFOR 
                LEFT OUTER JOIN UNIDADE ON APLIC.R_UNIDADE_CODUNI=UNIDADE.CODUNI
                LEFT OUTER JOIN CLIENTE ON APLIC.CODCLI=CLIENTE.CODCLI
                LEFT OUTER JOIN LOCAPLIC ON APLIC.CODLOCAPL=LOCAPLIC.CODLOCAPL 
                LEFT OUTER JOIN TIPAPLIC ON APLIC.CODTIPAPL=TIPAPLIC.CODTIPAPL 
    
                LEFT OUTER JOIN LOCAPLIC AS R_LOCAPLIC 
                    ON APLIC.R_LOCAPLIC_CODLOCAPL=R_LOCAPLIC.CODLOCAPL 
    
         WHERE APLIC.CODEMP=91
           AND APLIC.CODFIL=140

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    Muitíssimo obrigado !! Funcionou !! Até hoje procuro o erro da digitação rss, mas encontrei foi no ultimo Join a colocação da letra R_ antes do campo Locaplic.codlocapl.

    Mais uma vez muito agradecido. Salvou o meu dia !! 

    terça-feira, 14 de fevereiro de 2017 14:09