Jump to content
Fórum Script Brasil
  • 0

Consulta na TQuery


Eder

Question

Ola...

Preciso fazer esta consulta sql Paradox:

Select Dt_Emissao, Nr_ctrc, Pg_Cnpj, Cnpj_cpf 
From Ctrc, Clientes 
Where (Ctrc.Pg_Cnpj = Clientes.Cnpj_Cpf)

O problema...é que os dados do campo: Ctrc.Pg_Cnpj estão neste formato:

00.000.000/0000-00

enquanto que o campo Clientes.Cnpj_cpf esta com este formato:

00000000000000 (sem pontos, barras etc)

Neste caso, teria uma forma de a consulta funcionar....sem ter que alterar nada nas tabelas??

Grato

Edited by Eder
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
Preciso fazer esta consulta sql Paradox:

Select Dt_Emissao, Nr_ctrc, Pg_Cnpj, Cnpj_cpf 
From Ctrc, Clientes 
Where (Ctrc.Pg_Cnpj = Clientes.Cnpj_Cpf)
O problema...é que os dados do campo: Ctrc.Pg_Cnpj estão neste formato: 00.000.000/0000-00 enquanto que o campo Clientes.Cnpj_cpf esta com este formato: 00000000000000 (sem pontos, barras etc) Neste caso, teria uma forma de a consulta funcionar....sem ter que alterar nada nas tabelas??
Eder, este tipo de situação deveria ser evitado. Campos chave de relacionamento devem ser iguais. Esta questão de mostrar com formatação seria apenas uma questão de mascarar o resultado - pense na possibilidade de modificar isto futuramente. Voce deverá notar que isto vai prejudicar um pouco a performance da consulta. Quanto a uma possível solução, experimente desta forma:
Select Dt_Emissao, Nr_ctrc, Pg_Cnpj, Cnpj_cpf, substring(Ctrc.Pg_Cnpj from 1 for 2)+substring(Ctrc.Pg_Cnpj from 4 for 3)+substring(Ctrc.Pg_Cnpj from 8 for 3)+substring(Ctrc.Pg_Cnpj from 12 for 4)+substring(Ctrc.Pg_Cnpj from 17 for 2)
From Ctrc, Clientes 
Where substring(Ctrc.Pg_Cnpj from 1 for 2)+substring(Ctrc.Pg_Cnpj from 4 for 3)+substring(Ctrc.Pg_Cnpj from 8 for 3)+substring(Ctrc.Pg_Cnpj from 12 for 4)+substring(Ctrc.Pg_Cnpj from 17 for 2) = Clientes.Cnpj_Cpf

Eu adicionei a "encrenca" lá no SELECT para que você possa acompanhar o resultado e ver que está ficando correto - depois você pode remover.

Mas isto só deve funcionar se os dados estiverem formatados corretamente.

Link to comment
Share on other sites

  • 0
Eder, este tipo de situação deveria ser evitado. Campos chave de relacionamento devem ser iguais.

Esta questão de mostrar com formatação seria apenas uma questão de mascarar o resultado - pense na possibilidade de modificar isto futuramente. Voce deverá notar que isto vai prejudicar um pouco a performance da consulta.

R.: ok...é que como os arquivos são de terceiros acabei importando da maneira como vieram...mas já tou arrumando uma maneira de contornar a situação..e ficar os dois arquivos com os dados iguais(campo cliente)...

Quanto a uma possível solução, experimente desta forma:

CODE

Select Dt_Emissao, Nr_ctrc, Pg_Cnpj, Cnpj_cpf, substring(Ctrc.Pg_Cnpj from 1 for 2)+substring(Ctrc.Pg_Cnpj from 4 for 3)+substring(Ctrc.Pg_Cnpj from 8 for 3)+substring(Ctrc.Pg_Cnpj from 12 for 4)+substring(Ctrc.Pg_Cnpj from 17 for 2)

From Ctrc, Clientes

Where substring(Ctrc.Pg_Cnpj from 1 for 2)+substring(Ctrc.Pg_Cnpj from 4 for 3)+substring(Ctrc.Pg_Cnpj from 8 for 3)+substring(Ctrc.Pg_Cnpj from 12 for 4)+substring(Ctrc.Pg_Cnpj from 17 for 2) = Clientes.Cnpj_Cpf

Eu adicionei a "encrenca" lá no SELECT para que você possa acompanhar o resultado e ver que está ficando correto - depois você pode remover.

Mas isto só deve funcionar se os dados estiverem formatados corretamente.

R.: aqui deu problema pois também existe cpf ...e ai não ta dando certo..

Mas beleza..Micheus...vou ter que mudar o processo mesmo....então deixa quieto..

Grande abraço

Grato

Link to comment
Share on other sites

  • 0
Mas beleza..Micheus...vou ter que mudar o processo mesmo....então deixa quieto..

Se você está importando a informação, então apenas remova os caracteres durante o processo - vai facilitar bastante sua vida. ;)

Se for necessário manter a coluna importada como está, talvez fosse interessante criar uma nova coluna e por nelas os valores sem os caracteres não numéricos.

Abraços

Link to comment
Share on other sites

  • 0
Se você está importando a informação, então apenas remova os caracteres durante o processo - vai facilitar bastante sua vida.

Se for necessário manter a coluna importada como está, talvez fosse interessante criar uma nova coluna e por nelas os valores sem os caracteres não numéricos.

R.: Ok....foi o que acabei de fazer.......a tabela agora tem duas colunas com cnpj´s uma sem os caracteres e a outro com os caracteres. :D

valeu...t+

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...