Pular para o conteúdo
  • Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 6 anos, 2 meses atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #109410
    Avatar de Ricardo AvelinoRicardo Avelino
    Participante

      Olá pessoal, estou num beco sem saída… não sou especialista em SQL, tenho pouco conhecimento, por isso peço a ajuda de vcs.

      Estou tentando trazer o resultado de 2 tabelas no SQL. Porém o nome das colunas são idênticos: *.NUMNOTA, sendo que no TGFCAB.NUMNOTA é o numero da Nota Fiscal e no TGFIXN.NUMNOTA é o numero do CTe. O problema é que no resultado, os 2 campos mostram o numero da Nota Fiscal apenas.

      SELECT TGFCAB.NUMNOTA AS NOTA_FISCAL
      , TGFIXN.NUMNOTA AS CTE

      FROM TGFCAB
      INNER JOIN TGFIXN ON TGFCAB.CHAVENFE = TGFIXN.CHAVEACESSO

      WHERE TGFCAB.NUNOTA = ‘18498’

      Como faço para que o TGFCAB.NUMNOTA mostre o numero da Nota Fiscal e o TGFIXN.NUMNOTA mostre o numero do CTe?

      Desde já agradeço a atenção!

      #109411
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Colega, Absolutamente Não Entendi o que vc quer : mesmo com pouco conhecimento, PLZ explica melhor o que vc quer/precisa…. SE o que vc quer é mostrar as colunas chamadas NUMNOTA que estão nas duas tabelas, o que vc faz é EXATAMENTE ISSO que vc fez, ie, bota as duas colunas no SELECT e dá um ‘apelido’ diferente pra elas, que nem vc indicou :

        SYSTEM:@O11GR2SE:SQL>create table TGFCAB(NUMNOTA number, CHAVENFE number);

        Tabela criada.

        SYSTEM:@O11GR2SE:SQL>create table TGFIXN(NUMNOTA number, CHAVEACESSO number);

        Tabela criada.

        SYSTEM:@O11GR2SE:SQL>insert into TGFCAB values(18498, 1);

        1 linha criada.

        SYSTEM:@O11GR2SE:SQL>insert into TGFIXN values(89481, 1);

        1 linha criada.

        SYSTEM:@O11GR2SE:SQL>SELECT TGFCAB.NUMNOTA AS NOTA_FISCAL,
        2 TGFIXN.NUMNOTA AS CTE
        3 FROM TGFCAB
        4 INNER JOIN TGFIXN ON TGFCAB.CHAVENFE = TGFIXN.CHAVEACESSO
        5 WHERE TGFCAB.NUMNOTA = '18498'
        6 ;

        NOTA_FISCAL CTE
        ----------- ----------
        18498 89481

        SYSTEM:@O11GR2SE:SQL>

        ===> Taí, não tem o que, não mexi EM NADA no seu exemplo : plz EXPLICA MELHOR o que vc quer/precisa se não é isso….

        []s

        Chiappa

        #109412
        Avatar de Ricardo AvelinoRicardo Avelino
        Participante

          … Bom dia,

          Vamos a um exemplo:
          Numero da nota (TGFCAB.NUMNOTA) = 18498
          Numero do Cte (TGFIXN.NUMNOTA) = 1234

          O resultado na minha consulta é mostrado assim:
          Na coluna TGFCAB.NUMNOTA mostra = 18498
          Na coluna TGFIXN.NUMNOTA também mostra = 18498. Esse é o erro, a coluna TGFIXN.NUMNOTA deve mostrar = 1234 e não o mesmo numero da Nota Fiscal.

          #109413
          Avatar photoJosé Laurindo Chiappa
          Moderador

            Blz ? Então, não faz sentido o que vc reporta : se a NUMNOTA da tabela TGFCAB contém 18498 E a coluna NUMNOTA da tabela TGFIXN contém 1234 (mesmo dando o ‘apelido’ de ‘CTE’ no select, não importa), ** necessariamente ** o que vc mandou aparecer no SELECT é o que VAI ser exbido, veja :

            ==> primeiro vou criar as tabelas, só pra poder montar uma massa de testes :

            SQL> create table TGFCAB(NUMNOTA number, CHAVENFE number);

            Tabela criada.

            SQL> create table TGFIXN(NUMNOTA number, CHAVEACESSO number);

            Tabela criada.

            SQL> insert into TGFCAB values(18498, 1);

            1 linha criada.

            SQL> insert into TGFIXN values(1234, 1);

            1 linha criada.

            ==>> VEJA AQUI que eu tenho SIM na coluna NUMNOTA da tabela TGFCAB o valor 18498 :

            SQL> select * from TGFCAB;

            NUMNOTA CHAVENFE
            ———- ———-
            18498 1

            ==>> E TENHO na tabela TGFIXN o valor 1234 na coluna NUMNOTA ** dessa tabela ** :

            SQL> select * from TGFIXN;

            NUMNOTA CHAVEACESSO
            ———- ———–
            1234 1

            ==> é a repetição do SELECT anterior : se eu referenciar a coluna NUMNOTA da tabela TGFCAB ** e ** separadamente a coluna NUMNOTA la´da outra tabela TGFIXN (no caso dando o ‘apelido’ de CTE, mas não importa) o valor que vêm É SIM o valor que está na tabela , veja :

            SQL> SELECT TGFCAB.NUMNOTA AS NOTA_FISCAL,
            2 TGFIXN.NUMNOTA AS CTE
            3 FROM TGFCAB
            4 INNER JOIN TGFIXN ON TGFCAB.CHAVENFE = TGFIXN.CHAVEACESSO
            5 WHERE TGFCAB.NUMNOTA = ‘18498’
            6 ;


            NOTA_FISCAL CTE
            ----------- ----------
            18498 1234

            SQL>

            ===>> NÃO FAZ SENTIDO vir o mesmo valor pra colunas DIFERENTES, de tabelas DIFERENTES, sim sim sim ??? Isso é básico… Mostra os mesmos selects tipo esses que eu fiz que a gente pode dar uma olhada, legal ???

            []s

            Chiappa

            IMPORTANTE : o CRUCIAL no JOIN é que a coluna-chave, a coluna por onde as duas tabelas vão ser juntadas, TEM QUE TER O MESMO VALOR : preste atenção e veja que no meu exemplo que estou juntando a tabela TGFCAB com a tabela TGFIXN comparando as colunas CHAVENFE e CHAVEACESSO, ambas TEM QUE TER O MESMO VALOR que é 1 no meu caso – quem assegura isso é a linha :

            JOIN TGFIXN ON TGFCAB.CHAVENFE = TGFIXN.CHAVEACESSO

            no meu caso, AMBAS as colunas contém o valor ‘1’ aí funcionou ok, blz ???? Eu DESCONFIO que o teu problema é esse, talvez vc tenha registros onde uma das colunas-chave NÃO TEM o valor necessário – plz faça os selects SEPARADOS de ambas as tabelas, que nem eu fiz, pra comprovar isso ou não…

            #109414
            Avatar de Ricardo AvelinoRicardo Avelino
            Participante

              jlchiappa, valew pela explicação… mas não sei o que pode tá acontecendo…

              Veja no Print:

              #109415
              Avatar photoJosé Laurindo Chiappa
              Moderador

                Começa fazendo *** EXATAMENTE *** o que pedi, ie, um SELECT separado de cada tabela… Faça primeiro um :

                SELECT NUMNOTA, CHAVENFE from TGFCAB WHERE NUMNOTA = ‘1118456’;

                Isso se for 1118456 o numnota que vc quer pesquisar, se for outro informa outro…

                E depois vc vai consultar esse valor contido na CHAVENFE lá na outra tabela :

                SELECT NUMNOTA, CHAVEACESSO from TGFIXN WHERE CHAVEACESSO = ‘númerodaCHAVENFEquevcdescobriunoselectanterior’

                okdoc ?? Vamos começar por aí …

                []s

                Chiappa

                OBS : e preferencialmente, se vc puder mandar as consultas E o resultado delas em TEXTO, na própria mensagem, facilita BASTANTE a gente eventualmente tentar reproduzir, tem ter que REDIGITAR o texto mostrado num printscreen…

              Visualizando 6 posts - 1 até 6 (de 6 do total)
              • Você deve fazer login para responder a este tópico.
              plugins premium WordPress