Duplicidade

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Duplicidade

Mensagem por JoséQuintas »

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) Exibido 1213 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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Duplicidade

Mensagem por JoséQuintas »

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

Código: Selecionar todos

   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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Duplicidade

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Duplicidade

Mensagem por alxsts »

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:

Código: Selecionar todos

 SELECT EDEXTERNO, COUNT( EDEXTERNO )
  FROM JPEDICFG
GROUP BY EDEXTERNO
HAVING COUNT( EDEXTERNO ) > 1
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Duplicidade

Mensagem por JoséQuintas »

Lembrei de algo relacionado, que encontrei uma vez.

https://pctoledo.org/forum/viewto ... 57&t=23823
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder