Clipper On Line • Ver Tópico - Duplicidade

Duplicidade

Discussão sobre SQL

Moderador: Moderadores

 

Duplicidade

Mensagempor JoséQuintas » 17 Jun 2020 16:27

Ainda vou ver a solução, mas é interessante.
Fiquei na dúvida se postava aqui ou em legislação.

edi.png
edi.png (4.52 KiB) Visualizado 656 vezes


No meu pedido, imprimo o código de produto interno, e o código do fornecedor/cliente.
E a importação de XMLs cadastra pra conversão.

De repente, na impressão do pedido apareceu o produto duplicado/triplicado/etc.
Porque?
Olhem lá:

A empresa fez notas fiscais com o produto VR AWS 68.
primeiro o código era 07214, depois 214, depois SH025.

No relacionamento do MySQL... o que existir repetido acaba sendo repetido, e foi isso que aconteceu.

Ainda pensando no que fazer.
Provavelmente um GROUP BY nessa tabela.

Talvez quando aparecer um código novo excluir o velho da conversão....

Pode até ser normal, supondo que a empresa pode ter trocado de aplicativo e cadastrou tudo de novo com outro código.

Mas é froyds, pra MySQL e pra parte fiscal, e pra integração, etc. etc. etc.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Duplicidade

Mensagempor JoséQuintas » 17 Jun 2020 17:04

A única saída que deu certo foi procurar um a um.... fazer o que....

   WITH OBJECT cnSQL
      :cSQL := "SELECT PDCONF, PDTRANSA, PDCADASTRO, PDDATEMI, PDPEDCLI, PDCONTATO, " + ;
         " PDIIVAL, PDIPIVAL, PDICMVAL, PDSUBVAL, PDVALPRO, PDVALFRE, PDVALSEG," + ;
         " PDVALOUT, PDVALDES, PDVALNOT, PDVALEXT, PDTRANSP, PDTRANSP, " + ;
         " PDOBS, PDINFINC, PDINFALT, PDSTATUS, " + ;
         " JPCADASTRO.CDNOME, JPCADASTRO.CDENDERECO," + ;
         " JPCADASTRO.CDNUMERO, JPCADASTRO.CDCOMPL, " + ;
         " JPCADASTRO.CDBAIRRO, JPCADASTRO.CDCIDADE," + ;
         " JPCADASTRO.CDUF, JPCADASTRO.CDCEP," + ;
         " JPCADASTRO.CDCNPJ, JPCADASTRO.CDINSEST," + ;
         " JPCADASTRO.CDTELEFONE, JPCADASTRO.CDCONTATO," + ;
         " JPCADASTRO.CDMAPA, JPCADASTRO.CDCONTATO," + ;
         " JPCADASTRO.CDOUTDOC, JPCADASTRO.CDENDENT," + ;
         " JPCADASTRO.CDNUMENT, JPCADASTRO.CDBAIENT," + ;
         " JPCADASTRO.CDCEPENT, JPCADASTRO.CDCIDENT," + ;
         " JPCADASTRO.CDUFENT, JPCADASTRO.CDCOMENT," + ;
         " JPCADASTRO.CDENDCOB, JPCADASTRO.CDBAICOB," + ;
         " JPCADASTRO.CDCIDCOB, JPCADASTRO.CDUFCOB," + ;
         " JPCADASTRO.CDCEPCOB, JPCADASTRO.CDNUMCOB," + ;
         " JPCADASTRO.CDCOMCOB," + ;
         " JPTRANSP.TPNOME," + ;
         " JPFORPAG.FPDESCRI," + ;
         " JPVENDEDOR.VDDESCRI," + ;
         " JPTRANSA.TRREACAO, JPTRANSA.TRDESCRI, " + ;
         " JPNOTFIS.NFNOTFIS," + ;
         " JPITEM.IEDESCRI, JPITEM.IEUNID, JPITEM.IEPESLIQ, JPITEM.IEPESBRU," + ;
         " JPITPED.*," + ;
         " ( SELECT EDEXTERNO" + ;
            " FROM JPEDICFG " + ;
            " WHERE EDTIPO=1 AND EDINTERNO=JPITPED.IPPRODUTO AND EDEMPRESA LIKE CONCAT( '%', JPCADASTRO.CDCNPJ, '%' )" + ;
            " LIMIT 1 ) AS CODEXTERNO" + ;
         " FROM JPPEDIDO" + ;
         " LEFT JOIN JPTRANSA ON JPTRANSA.IDTRANSA = JPPEDIDO.PDTRANSA" + ;
         " LEFT JOIN JPCADASTRO ON JPCADASTRO.IDCADASTRO = JPPEDIDO.PDCADASTRO" + ;
         " LEFT JOIN JPTRANSP ON JPTRANSP.IDTRANSP = JPPEDIDO.PDTRANSP" + ;
         " LEFT JOIN JPFORPAG ON JPFORPAG.IDFORPAG = JPPEDIDO.PDFORPAG" + ;
         " LEFT JOIN JPVENDEDOR ON JPVENDEDOR.IDVENDEDOR = JPPEDIDO.PDVENDEDOR" + ;
         " LEFT JOIN JPNOTFIS ON JPNOTFIS.NFPEDIDO = JPPEDIDO.IDPEDIDO" + ;
         " LEFT JOIN JPITPED ON JPITPED.IPPEDIDO = JPPEDIDO.IDPEDIDO" + ;
         " LEFT JOIN JPITEM ON JPITEM.IDPRODUTO = JPITPED.IPPRODUTO" + ;
         " WHERE IDPEDIDO=" + NumberSQL( nIdPedido )
      :Execute()


é o bloco com CODEXTERNO

Como é só para os produtos de um único pedido, tudo bem, sem problema de velocidade.
Depois penso numa saída melhor, agora é apagar incêndio.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Duplicidade

Mensagempor JoséQuintas » 17 Jun 2020 17:13

ORDER BY IDEDICFG DESC

Assim pega o último cadastrado !!!!
Teoricamente é o último que está valendo....

Talvez seja bom colocar na configuração, pra quando cadastrar algo novo apagar tudo que for anterior para o mesmo código.
Isso iria limpando códigos antigos automaticamente.

Nota:
É interessante, conforme vou usando MySQL vou encontrando soluções mais rápidas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Duplicidade

Mensagempor alxsts » 17 Jun 2020 18:53

Olá!

Talvez já conheça mas, fica o registro: uma query para buscar registros onde o valor de uma coluna (no exemplo, coluna EDEXTERNO) ocorre repetidas vezes nas linhas da tabela:
 SELECT EDEXTERNO, COUNT( EDEXTERNO )
  FROM JPEDICFG
GROUP BY EDEXTERNO
HAVING COUNT( EDEXTERNO ) > 1
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Duplicidade

Mensagempor JoséQuintas » 17 Jun 2020 19:13

Lembrei de algo relacionado, que encontrei uma vez.

http://www.pctoledo.com.br/forum/viewtopic.php?f=57&t=23823
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18150
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes




Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro