Página 1 de 1

Comparação de valores de 2 colunas

Enviado: Qua, 17 Out 2012 3:57 pm
por heraldoaraujo
Turma eu to com o seguinte problema, preciso comparar 2 colunas da mesma tabela e que se elas seja igual retorna as duas, para ilustra vou criar um exemplo:

nome status

scott estudando
scott estudando
scott trabalhando
jimmy estudando
jimmy trabalhando
tommy estudando
tommy aposentado
tommy aposentado

Essas duas colunas não tem nenhuma constraint, mas ela precisar retornar dados que a coluna nome e status seja igual e repitida, então ela deve retornar:

nome status

scott estudando
scott estudando
tommy aposentado
tommy aposentado

Alguém pode me dá uma luz para eu montar uma query que retorne registro dessa forma, por favor?

Re: Comparação de valores de 2 colunas

Enviado: Qua, 17 Out 2012 4:05 pm
por carloscsilva
Ola!

Esta meio confuso, mas se entendi direito ... é mais ou mesmo isso!?

Selecionar tudo

select nome,
          status
  from tabela
where status in ('estudando','aposentado')
order by nome;

Re: Comparação de valores de 2 colunas

Enviado: Qua, 17 Out 2012 4:28 pm
por Trevisolli
Brother, blzinha?

Dá uma olhada neste exemplo e, veja se te atende:

Selecionar tudo

with querie1 as (

select 'scott' nome, 'estudando' status
  from dual
union all
select 'scott' nome, 'estudando' status
  from dual
union all
select 'scott' nome, 'trabalhando' status
  from dual
union all
select 'jimmy' nome, 'estudando' status
  from dual
union all
select 'jimmy' nome, 'trabalhando' status
  from dual
union all
select 'tommy' nome, 'estudando' status
  from dual
union all
select 'tommy' nome, 'aposentado' status
  from dual
union all
select 'tommy' nome, 'aposentado' from dual
)
select nome, status
  from querie1
 where (nome, status) in (select nome, status
                            from querie1
                           group by nome, status
                          having count(1) > 1)
order by 1,2 
Essa creio que seja uma das formas.
No teu caso, seria somente utilizar essa parte do código:

Selecionar tudo

select nome, status
  from tua_tabela
 where (nome, status) in (select nome, status
                            from tua_tabela
                           group by nome, status
                          having count(1) > 1)
order by 1,2 

Re: Comparação de valores de 2 colunas

Enviado: Qua, 17 Out 2012 5:11 pm
por heraldoaraujo
Turma eu fiz com group by e having e tive sucesso gente valeu :mrgreen: