lucas1985 Postado 29 de Janeiro de 2018 Tópicos Que Criei: 3 Tópicos/Dia: 0.00 Meu Conteúdo: 9 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 79 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 38 Denunciar Compartilhar Postado 29 de Janeiro de 2018 Boa tarde! Gostaria de contar com a ajuda de vcs novamente, tenho uma SQL montada, só que ela esta puxando alguns lançamentos em duplicidades, seria possível vcs me ajudarem a corrigir para não vir lançamentos em duplicidade. Em anexo arquivo txt com a SQL RMfiscal.txt Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 29 de Janeiro de 2018 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 821 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.796 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 29 de Janeiro de 2018 (editado) usa a função distinct SELECT [ ALL | DISTINCT ] [ TOP ( expression ) [ PERCENT ] [ WITH TIES ] ] <select_list> ALL Especifica que linhas duplicadas podem aparecer no conjunto de resultados. ALL é o padrão. DISTINCT Especifica que só linhas exclusivas podem aparecer no conjunto de resultados. Valores nulos são considerados iguais para os propósitos da palavra-chave DISTINCT. O par de colchetes no trecho [ ALL | DISTINCT ] indica que os dois argumentos são opcionais e que se informados são mutuamente exclusivos, isto é, ou um ou outro. Como consta na documentação o argumento ALL é o padrão, ou seja, se nenhum dos argumentos constar do comando, assume-se a presença de ALL. A respeito do argumento DISTINCT a documentação cita linhas exclusivas, entende-se por valores não repetidos. Editado 29 de Janeiro de 2018 por omar Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
lucas1985 Postado 31 de Janeiro de 2018 Tópicos Que Criei: 3 Tópicos/Dia: 0.00 Meu Conteúdo: 9 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 79 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 38 Autor Denunciar Compartilhar Postado 31 de Janeiro de 2018 Excelente tarde, Omar! Coloquei o DISTINCT, não sei se estou fazendo certo, mas continua puxando em duplicidade. Veja imagem em anexo Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
FJN Postado 31 de Janeiro de 2018 Tópicos Que Criei: 4 Tópicos/Dia: 0.00 Meu Conteúdo: 8 Conteúdo/Dia: 0.00 Reputação: 1 Pontos/Conquistas: 82 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Idade: 22 Denunciar Compartilhar Postado 31 de Janeiro de 2018 Boa tarde Lucas! Pelo que vi, a sua consulta não está vindo duplicada, pois os demais campos da tabela são diferentes, como na coluna VALORCONT. A função DISTINCT irá mesclar as células que possuem todas as linhas iguais. Por exemplo, se uma tabela traz dois registros com duas colunas iguais, como abaixo: Código - (SELECT NOME, CIDADE FROM GFILIAL WHERE NOME = 'FJN') NOME CIDADE FJN JUAZEIRO FJN JUAZEIRO e você usar um DISTINCT, como abaixo: Código - (SELECT DISTINCT NOME, CIDADE FROM GFILIAL WHERE NOME = 'FJN') Ficará apenas um registro. NOME CIDADE FJN JUAZEIRO 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 31 de Janeiro de 2018 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 821 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.796 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 31 de Janeiro de 2018 Também na data de entrada são informações diferentes. 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
lucas1985 Postado 1 de Fevereiro de 2018 Tópicos Que Criei: 3 Tópicos/Dia: 0.00 Meu Conteúdo: 9 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 79 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 38 Autor Denunciar Compartilhar Postado 1 de Fevereiro de 2018 Bom dia! Esse mesmo fornecedor tenho ele na coligada 2, mesmo colocando para puxar a coligada 1 puxa em duplicidade, se vc observar os documentos são os mesmos números, id e mesmas datas de entrada. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
omar Postado 1 de Fevereiro de 2018 Tópicos Que Criei: 59 Tópicos/Dia: 0.01 Meu Conteúdo: 821 Conteúdo/Dia: 0.16 Reputação: 107 Pontos/Conquistas: 4.796 Conteúdo Resolvido: 0 Dias Ganho: 74 Status: Offline Idade: 61 Dispositivo: Windows Denunciar Compartilhar Postado 1 de Fevereiro de 2018 (editado) Remove os selects internos e veja se continua duplicado. Caso não apareçam duplicados, o problema ocorre por causa dos selects internos. Vc tem certeza que não existem colunas com valores diferentes ? Editado 1 de Fevereiro de 2018 por omar Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
lucas1985 Postado 2 de Fevereiro de 2018 Tópicos Que Criei: 3 Tópicos/Dia: 0.00 Meu Conteúdo: 9 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 79 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 38 Autor Denunciar Compartilhar Postado 2 de Fevereiro de 2018 17 horas atrás, omar disse: Remove os selects internos e veja se continua duplicado. Caso não apareçam duplicados, o problema ocorre por causa dos selects internos. Vc tem certeza que não existem colunas com valores diferentes ? Bom dia! Não tem valores diferentes. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 2 de Fevereiro de 2018 Tópicos Que Criei: 900 Tópicos/Dia: 0.14 Meu Conteúdo: 8.844 Conteúdo/Dia: 1.34 Reputação: 310 Pontos/Conquistas: 106.594 Conteúdo Resolvido: 0 Dias Ganho: 195 Status: Online Idade: 52 Dispositivo: Windows Denunciar Compartilhar Postado 2 de Fevereiro de 2018 Lucas, você tem alguns problemas estruturais na sua sentença... que podem gerar seu problema, bem como pode causar o retorno de informações erradas, e até deixar a sentença mais lenta. INNER JOIN FCFO (nolock) ON (FCFO.CODCFO=DLAF.EMITENTECFO OR FCFO.CODCFO=DLAF.CODCFOORIGEMDESTINO) AND FCFO.CODCOLIGADA=DLAF.CODCOLCFO -- ESSA PARTE ACIMA VC TEM QUE POR, MESMO QUE SEUS CLIFOR SEJAM GLOBAIS. E SE NÃO FOR, PIOR... AI ESTÁ ERRADO MESMO... E JÁ QUE ESTÁ USANDO OR NA LINHA ACIMA, TEVE QUE COLOCAR PARENTESIS TAMBÉM... EM nenhum SUBSELECT seu você trata CodColigada... tem que tratar. Isso é um erro, e repito o que falei acima. Exemplo (parte...): (select DTRBITEM.CODTRB FROM DTRBITEM where DTRBITEM.CODTRB='PIS' AND DTRBITEM.IDLAF=DITEM.IDLAF AND DTRBITEM.CODCOLIGADA=DITEM.CODCOLIGADA AND DTRBITEM.NUMITEM=DITEM.NUMITEM) [PIS], (select DTRBITEM.BASETRB FROM DTRBITEM where DTRBITEM.CODTRB='PIS' AND DTRBITEM.IDLAF=DITEM.IDLAF AND DTRBITEM.NUMITEM=DITEM.NUMITEM) [BC PIS], INNER JOIN TMOV ON DLAF.IDMOV=TMOV.IDMOV --- CADE O JOIN DE CODCOLIGADA AQUI TAMBEM?? Por ultimo, veja ao retornarem os dados, se realmente não está vindo nada de diferente na consulta, pois, o DISTINCT apenas traz um registro quando há uma repetição completa da linha de retorno. Se uma vírgula for diferente ele mostra as duas ou mais linhas. 2 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
lucas1985 Postado 2 de Fevereiro de 2018 Tópicos Que Criei: 3 Tópicos/Dia: 0.00 Meu Conteúdo: 9 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 79 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 38 Autor Denunciar Compartilhar Postado 2 de Fevereiro de 2018 1 hora atrás, Jair - Fórmula disse: Lucas, você tem alguns problemas estruturais na sua sentença... que podem gerar seu problema, bem como pode causar o retorno de informações erradas, e até deixar a sentença mais lenta. INNER JOIN FCFO (nolock) ON (FCFO.CODCFO=DLAF.EMITENTECFO OR FCFO.CODCFO=DLAF.CODCFOORIGEMDESTINO) AND FCFO.CODCOLIGADA=DLAF.CODCOLCFO -- ESSA PARTE ACIMA VC TEM QUE POR, MESMO QUE SEUS CLIFOR SEJAM GLOBAIS. E SE NÃO FOR, PIOR... AI ESTÁ ERRADO MESMO... E JÁ QUE ESTÁ USANDO OR NA LINHA ACIMA, TEVE QUE COLOCAR PARENTESIS TAMBÉM... EM nenhum SUBSELECT seu você trata CodColigada... tem que tratar. Isso é um erro, e repito o que falei acima. Exemplo (parte...): (select DTRBITEM.CODTRB FROM DTRBITEM where DTRBITEM.CODTRB='PIS' AND DTRBITEM.IDLAF=DITEM.IDLAF AND DTRBITEM.CODCOLIGADA=DITEM.CODCOLIGADA AND DTRBITEM.NUMITEM=DITEM.NUMITEM) [PIS], (select DTRBITEM.BASETRB FROM DTRBITEM where DTRBITEM.CODTRB='PIS' AND DTRBITEM.IDLAF=DITEM.IDLAF AND DTRBITEM.NUMITEM=DITEM.NUMITEM) [BC PIS], INNER JOIN TMOV ON DLAF.IDMOV=TMOV.IDMOV --- CADE O JOIN DE CODCOLIGADA AQUI TAMBEM?? Por ultimo, veja ao retornarem os dados, se realmente não está vindo nada de diferente na consulta, pois, o DISTINCT apenas traz um registro quando há uma repetição completa da linha de retorno. Se uma vírgula for diferente ele mostra as duas ou mais linhas. Excelente tarde, Jair! Conforme sua explicação funcionou perfeito. Mais uma vez muito obrigado! Obrigado a todos pela colaboração. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Participe da conversa
Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.