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?
Comparação de valores de 2 colunas
- heraldoaraujo
- Rank: Programador Pleno
- Mensagens: 41
- Registrado em: Dom, 19 Fev 2012 12:10 pm
-
- Rank: Programador Júnior
- Mensagens: 22
- Registrado em: Qui, 26 Jul 2012 8:55 am
" Pense diferente! - "
Ola!
Esta meio confuso, mas se entendi direito ... é mais ou mesmo isso!?
Esta meio confuso, mas se entendi direito ... é mais ou mesmo isso!?
select nome,
status
from tabela
where status in ('estudando','aposentado')
order by nome;
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Brother, blzinha?
Dá uma olhada neste exemplo e, veja se te atende:
Essa creio que seja uma das formas.
No teu caso, seria somente utilizar essa parte do código:
Dá uma olhada neste exemplo e, veja se te atende:
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
No teu caso, seria somente utilizar essa parte do código:
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
- heraldoaraujo
- Rank: Programador Pleno
- Mensagens: 41
- Registrado em: Dom, 19 Fev 2012 12:10 pm
Turma eu fiz com group by e having e tive sucesso gente valeu
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes