none
Linhas duplicadas e o DISTINCT não funciona RRS feed

  • Pergunta

  • Pessoal bom dia,

    estou realizando uma consulta e tem algumas linhas que estão duplicadas e o distinct  não esta funcionando, tem algo que eu possa fazer?

    terça-feira, 14 de outubro de 2014 13:25

Respostas

  • Deleted
    terça-feira, 14 de outubro de 2014 13:50
  • Douglas, bom dia

    Tente o seguinte exemplo meu caro

    var minha variavel = db.minhatabela.Where(minhacondição).Select(x => dadosQueQueroRetornar).Distinct();

    Qualquer dúvida estamos a disposição.

    terça-feira, 14 de outubro de 2014 13:52
  • Douglas,

    O DISTINCT irá retornar linhas únicas em caso da linha inteira for igual, se só alguns campos forem iguais, mesmo que forem as chaves, irá retornar a quantidade total.

    Você poderia mostrar o código que você está utilizando?

    Abs.


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    terça-feira, 14 de outubro de 2014 14:18
  • Douglas,

    O DISTINCT irá retornar linhas únicas em caso da linha inteira for igual, se só alguns campos forem iguais, mesmo que forem as chaves, irá retornar a quantidade total.

    Você poderia mostrar o código que você está utilizando?

    Abs.


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    Luiz acho que não da pra fazer da forma que você deu exemplo.. pois o codigo é assim

    SELECT T1.DOCUMENTODIGITADO, T2.NUMERO AS ORDEMCOMPRA, T1.HANDLE,  T1.DATAEMISSAO AS DATANOTA,
           T2.FILIAL,  T2.DATADAORDEM AS DATAORDEM
    FROM FN_DOCUMENTOS T1
            LEFT JOIN CP_ORDENSCOMPRA T2    ON REPLACE(T1.NUMEROPEDIDO, '/', '') = T2.NUMERO        
    WHERE T2.NUMERO IS NOT NULL
    AND T1.DATAEMISSAO BETWEEN '2014-01-01' AND '2014-10-13'
    AND T2.DATADAORDEM > T1.DATAEMISSAO

    terça-feira, 14 de outubro de 2014 16:58
  • Tente colocar o Código entre parenteses e no final .Distinct();
    terça-feira, 14 de outubro de 2014 17:21

Todas as Respostas

  • Deleted
    terça-feira, 14 de outubro de 2014 13:50
  • Douglas, bom dia

    Tente o seguinte exemplo meu caro

    var minha variavel = db.minhatabela.Where(minhacondição).Select(x => dadosQueQueroRetornar).Distinct();

    Qualquer dúvida estamos a disposição.

    terça-feira, 14 de outubro de 2014 13:52
  • Douglas,

    O DISTINCT irá retornar linhas únicas em caso da linha inteira for igual, se só alguns campos forem iguais, mesmo que forem as chaves, irá retornar a quantidade total.

    Você poderia mostrar o código que você está utilizando?

    Abs.


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    terça-feira, 14 de outubro de 2014 14:18
  • Bruno, ata então esta explicado a questão por que esta trazendo todas as linhas pq nem todos os campos são iguais
    terça-feira, 14 de outubro de 2014 16:51
  • Douglas,

    O DISTINCT irá retornar linhas únicas em caso da linha inteira for igual, se só alguns campos forem iguais, mesmo que forem as chaves, irá retornar a quantidade total.

    Você poderia mostrar o código que você está utilizando?

    Abs.


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    Luiz acho que não da pra fazer da forma que você deu exemplo.. pois o codigo é assim

    SELECT T1.DOCUMENTODIGITADO, T2.NUMERO AS ORDEMCOMPRA, T1.HANDLE,  T1.DATAEMISSAO AS DATANOTA,
           T2.FILIAL,  T2.DATADAORDEM AS DATAORDEM
    FROM FN_DOCUMENTOS T1
            LEFT JOIN CP_ORDENSCOMPRA T2    ON REPLACE(T1.NUMEROPEDIDO, '/', '') = T2.NUMERO        
    WHERE T2.NUMERO IS NOT NULL
    AND T1.DATAEMISSAO BETWEEN '2014-01-01' AND '2014-10-13'
    AND T2.DATADAORDEM > T1.DATAEMISSAO

    terça-feira, 14 de outubro de 2014 16:58
  • Tente colocar o Código entre parenteses e no final .Distinct();
    terça-feira, 14 de outubro de 2014 17:21
  • valeu senhores.. consegui aqui
    terça-feira, 14 de outubro de 2014 17:30
  • Deleted
    terça-feira, 14 de outubro de 2014 19:25