none
Problema com repetição de resultados no select RRS feed

  • Pergunta

  • Pessoal bom dia

    Estou com o seguinte problema: tenho uma tabela de Clientes, Parceiros,Vendedores e Planos.

    Onde cada cliente tem vários parceiros,vendedores e planos.

    Preciso de fazer um select que me traga o cliente apenas uma vez com o código do parceiro e do vendendor.

    Fiz o seguinte :

    select top 100 c.*,a.sacparcod,a.vencod
    from clientes c,acesso a
    where c.clicod = a.clicod

    so que ele traz o cliente repetido, porque o cliente tem varios planos. Exemplo se o cliente 008987 tiver 3 planos neste select acima o resultado sera:

    Cod         Tipo  Nome                           Plano                        Vendedor              Parceiro
    008987    F       LUIS FERNANDO           SuperNet - 100                           1                           1   
    008987    F       LUIS FERNANDO          SuperNet - 200                            2                           3
    008987    F       LUIS FERNANDO          SuperNet - 200                            9                           0  


    Alguem sabe como posso fazer um select para trazer o cliente apenas 1 vez ja que neste select pouco importa qual o plano do cliente e sim o cliente em si e seus parceiros e vendedores. Sendo também que eu preciso de apenas 1 vendedor e 1 parceiro os outros eu posso descartar.

    Espero que entendam meu problema,

    Agradeço quem poder me ajudar.


    sexta-feira, 20 de junho de 2008 15:00

Respostas

  •  

    tente usar um agrupamentos

     

    select top 100 c.*, max(a.sacparcod)  sac ,max(a.vencod)  vend
    from clientes c,acesso a
    where c.clicod = a.clicod

     

    Abs;

    sexta-feira, 20 de junho de 2008 16:10

Todas as Respostas

  •  

    tente usar um agrupamentos

     

    select top 100 c.*, max(a.sacparcod)  sac ,max(a.vencod)  vend
    from clientes c,acesso a
    where c.clicod = a.clicod

     

    Abs;

    sexta-feira, 20 de junho de 2008 16:10
  • Danilo,

     

    Concordo com o Marcelo, tente fazer o agrupamento.

    sexta-feira, 20 de junho de 2008 16:31
  • Seria bom responder se funcionou com agrupamento =D (pois minha dica seria essa também)
    sexta-feira, 20 de junho de 2008 19:50
  • Pessoal obrigado pela ajuda mais ainda não deu certo , estou tentando fazer igual vcs falaram mais apresenta o seguinte erro :

    Msg 8120, Level 16, State 1, Line 1
    Column 'c.CliFisJur' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

    Onde posso estar errando ...

    Obriogado.
    sexta-feira, 20 de junho de 2008 20:44
  • Deu certo eu não estava fazendo o group by nos campos declarados no select ... etão fiz assim : group by c.CliCod,c.CliNomFan , e deu certo.

    Obrigado a todos que me ajudaram ...



    segunda-feira, 23 de junho de 2008 11:39