Montando uma query

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
ruibarros
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 93
Registrado em: Qui, 29 Jan 2009 11:44 am
Localização: Cuiabá
Rui Barros
OCP - Oracle Certified Professional

Pessoal me ajudem por favor..
Preciso montar uma query para certas tuplas...

Tenho um certo número de funcionários, com certa classificação na empresa, com tal salário e tal data de admissão.

Preciso montar uma query que me retorne assim

O Sr. Smith é o melhor Desenvolvedor da empresa e foi admitido em 17/12/2009 e ganha R$ 800.

Obrigado.
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

O que caracteriza que ele é o melhor?
ruibarros
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 93
Registrado em: Qui, 29 Jan 2009 11:44 am
Localização: Cuiabá
Rui Barros
OCP - Oracle Certified Professional

Numeração maior... 7902 de t.mgr from EMP
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

Selecionar tudo

select 'O Sr(a) '||emp.name||' é o melhor Desenvolvedar da empresa e foi adminitido em '||emp.date|' e ganha R$ '||emp.salary
from emp
where emp.cod in (select max(t.mgr) from emp)
acredito que algo assim..
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

select 'O Sr(a) '||emp.name||' é o melhor Desenvolvedar da empresa e foi adminitido em '||emp.date|' e ganha R$ '||emp.salary
from emp
where emp.mgr in (select max(t.mgr) from emp t)

tava errado o where
ruibarros
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 93
Registrado em: Qui, 29 Jan 2009 11:44 am
Localização: Cuiabá
Rui Barros
OCP - Oracle Certified Professional

Só que a função, no caso "desenvolvedor", também faz parte do probleminha, constando numa coluna chamada JOB.

Dentro de cada coluna, por exemplo, coluna ENAME, possui vários nomes, onde cada um possui uma função na coluna JOB, também tem uma coluna onde cada um tem sua pontuação MGR onde cada um foi admitido em uma tal HIREDATE e onde cada um ganha seu salário na coluna SAL.

Cada função, tem pelo menos duas iguais...
Exemplo... 2 desenvolvedores, 3 suportes...

Eu preciso mostrar qual foi o melhor desenvolvedor da empresa, que foi admitido em tal data e ganha tanto..

Aí passa pra outra função... no caso suporte... e mostra também...

Valeu!
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

cara, é só usar concatenação ( || ),
e relacionar as duas tabelas
where emp.codjob = job.cod

mais ou menos assim então

select 'Sr(a) '||emp.name||' é a(o) melhor '||job.ename||' da empresa, que foi admitido em '||emp.hiredate||' e ganha R$ '||emp.sal
from emp, job
where emp.codjob = job.cod
and emp.mgr in (select max(t.mgr) from emp t group by emp.codjob )
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 18 visitantes