none
filtrar informaçoes RRS feed

  • Pergunta

  • Prezados  veja se e possivel, Sql simples, pore eu preciso do seguinte resultado:

    SELECT

     

    CHAPA,DTMUDANA,MOTIVO FROM PFHSTFCO order by

    chaPA

    resultado

    003824 1983-11-09 00:00:00.000 02
    003824 2010-05-01 00:00:00.000 10
    006164 1990-07-02 00:00:00.000 02
    006164 2010-05-01 00:00:00.000 10
    006441 1991-04-01 00:00:00.000 02
    006441 2006-09-01 00:00:00.000 04
    006894 1992-02-03 00:00:00.000 02
    006894 2008-09-01 00:00:00.000 04
    006894 2008-10-01 00:00:00.000 09
    006894 2009-05-01 00:00:00.000 10
    006894 2009-07-01 00:00:00.000 10
    006894 2009-09-01 00:00:00.000 10

    002816 1980-03-01 00:00:00.000 02

    qual seria resultado esperado:

    as chapas que esta repetindo, por exemplo, essa chapa 002816, so vem uma vez, nao poderia esta saindo no resultado da SQL.

    obrigado a todos

     

    quarta-feira, 14 de dezembro de 2011 17:25

Respostas

  • Boa tarde

     

    Não sei se é das melhores, mas segue uma alternativa:

     

    SELECT CHAPA, DTMUDANA, MOTIVO FROM PFHSTFCO as p
    
    WHERE (SELECT COUNT(*) FROM PFHSTFCO as s WHERE s.CHAPA = p.CHAPA) > 1
    
    order by CHAPA
    

     

    Espero que seja útil.

     


    Assinatura: Imoveis em Guarulhos
    • Marcado como Resposta Ronnie Von sexta-feira, 16 de dezembro de 2011 11:39
    quarta-feira, 14 de dezembro de 2011 18:34
  • Pelo que eu entendi, você gostaria que o registro fosse apresentado somente uma vez na consulta. Correto ? Se for isso, utilize o comando distinct. Ficaria assim:

    SELECT distinct CHAPA,DTMUDANA,MOTIVO FROM PFHSTFCO order by chaPA


    Guilherme Costa
    Email: guilerme18@hotmail.com

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de dezembro de 2011 11:39
    quarta-feira, 14 de dezembro de 2011 19:29
  • Tente assim.

     

    Aqui você saberá os registros "repetidos" e a quantidade de repetições

     

    SELECT count(CHAPA),CHAPA,  MOTIVO FROM PFHSTFCO as p

    group by  CHAPA,  MOTIVO

    having count(CHAPA) > 1

    Só que pelo que vi você não poderá usar o campo: DTMUDANA,neste script, pois como ele é diferente para cada registro, não será possível agrupar.

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de dezembro de 2011 11:39
    quarta-feira, 14 de dezembro de 2011 19:33
  • Ronnie

    segue um exemplo usando cte (SQL 2005 ou superior)

    ;with cte_dados
    as
    ( SELECT CHAPA,DTMUDANA,MOTIVO, row_number() over(partition by chapa order by chapa) contador FROM PFHSTFCO )
    
    select * from PFHSTFCO 
    where chapa in (select chapa from cte_dados where contador=2)
    order by chaPA
    

     


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de dezembro de 2011 11:39
    sexta-feira, 16 de dezembro de 2011 11:36

Todas as Respostas

  • Boa tarde

     

    Não sei se é das melhores, mas segue uma alternativa:

     

    SELECT CHAPA, DTMUDANA, MOTIVO FROM PFHSTFCO as p
    
    WHERE (SELECT COUNT(*) FROM PFHSTFCO as s WHERE s.CHAPA = p.CHAPA) > 1
    
    order by CHAPA
    

     

    Espero que seja útil.

     


    Assinatura: Imoveis em Guarulhos
    • Marcado como Resposta Ronnie Von sexta-feira, 16 de dezembro de 2011 11:39
    quarta-feira, 14 de dezembro de 2011 18:34
  • Pelo que eu entendi, você gostaria que o registro fosse apresentado somente uma vez na consulta. Correto ? Se for isso, utilize o comando distinct. Ficaria assim:

    SELECT distinct CHAPA,DTMUDANA,MOTIVO FROM PFHSTFCO order by chaPA


    Guilherme Costa
    Email: guilerme18@hotmail.com

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de dezembro de 2011 11:39
    quarta-feira, 14 de dezembro de 2011 19:29
  • Tente assim.

     

    Aqui você saberá os registros "repetidos" e a quantidade de repetições

     

    SELECT count(CHAPA),CHAPA,  MOTIVO FROM PFHSTFCO as p

    group by  CHAPA,  MOTIVO

    having count(CHAPA) > 1

    Só que pelo que vi você não poderá usar o campo: DTMUDANA,neste script, pois como ele é diferente para cada registro, não será possível agrupar.

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de dezembro de 2011 11:39
    quarta-feira, 14 de dezembro de 2011 19:33
  • Ronnie

    segue um exemplo usando cte (SQL 2005 ou superior)

    ;with cte_dados
    as
    ( SELECT CHAPA,DTMUDANA,MOTIVO, row_number() over(partition by chapa order by chapa) contador FROM PFHSTFCO )
    
    select * from PFHSTFCO 
    where chapa in (select chapa from cte_dados where contador=2)
    order by chaPA
    

     


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    • Marcado como Resposta Ronnie Von sexta-feira, 16 de dezembro de 2011 11:39
    sexta-feira, 16 de dezembro de 2011 11:36
  • Obrigado amigos pelo grande ajuda, resolvido Parabens a Todos
    sexta-feira, 16 de dezembro de 2011 11:40