- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 6 anos, 2 meses atrás por José Laurindo Chiappa.
-
AutorPosts
-
18 de setembro de 2018 às 5:40 pm #109410Ricardo AvelinoParticipante
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 CTEFROM TGFCAB
INNER JOIN TGFIXN ON TGFCAB.CHAVENFE = TGFIXN.CHAVEACESSOWHERE 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!
18 de setembro de 2018 às 11:13 pm #109411José Laurindo ChiappaModeradorColega, 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 89481SYSTEM:@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
19 de setembro de 2018 às 4:36 pm #109412Ricardo AvelinoParticipante… Bom dia,
Vamos a um exemplo:
Numero da nota (TGFCAB.NUMNOTA) = 18498
Numero do Cte (TGFIXN.NUMNOTA) = 1234O 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.19 de setembro de 2018 às 8:46 pm #109413José Laurindo ChiappaModeradorBlz ? 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…
20 de setembro de 2018 às 1:26 am #109414Ricardo AvelinoParticipantejlchiappa, valew pela explicação… mas não sei o que pode tá acontecendo…
Veja no Print:
20 de setembro de 2018 às 1:53 am #109415José Laurindo ChiappaModeradorComeç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…
-
AutorPosts
- Você deve fazer login para responder a este tópico.