Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal segue a pergunta abaixo.
Crie uma função ou procedure na base de dados que receba como parâmetro um código de departamento e determine o MGR(código do gerente) do gerente do departamento (MANAGER).
Caso o departamento não tenha gerente, Deverá ser escolhido o MGR do funcionário com maior cargo deste departamento ( se existir mais de um, obtenha o MGR do funcionário mais velho e com maior cargo).
Assim.. eu acho que até consegui fazer... mas tem uma parte que me deixa meio em duvida.
" Caso o departamento não tenha gerente, Deverá ser escolhido o MGR do funcionário com maior cargo deste departamento ( se existir mais de um, obtenha o MGR do funcionário mais velho e com maior cargo). "
Como definir em uma tabela o " maior cargo " ?
Valeu pessoal att. \o
Não creio u.u rs
Valeu Mota!
Publica a DESC da tabela
>
Publica a DESC da tabela
AQUI mota.
EMPNO NUMBER(4)
ENAME VARCHAR2(20)
JOB VARCHAR2(20)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
SEXO CHAR(1)
e obrigado novamente!
O maior cargo seria o maior salário ?
select depto,job,sal
from employees e1
where sal = (select max(sal)
from employees e2
where e2.depto = e1.depto)>
O maior cargo seria o maior salário ?
select depto,job,sal
from employees e1
where sal = (select max(sal)
from employees e2
where e2.depto = e1.depto)
Então por isso ficou a minha duvida.. de puxar " Maior Cargo " bom pede apenas maior Cargo.. nada além.. mas indo pela lógica de quem tem o maior Cargo..realmente ganha o maior salario.. podemos dizer que sim.. ta certo rs
obs: mas você me ajudou mais uma vez " em algo que eu não sabia " você fez JOIN.. e eu não entendi por que.. " e sempre que eu tentava buscar o maior salario de um departamento especifico me trazia 2 resultados.. e além do departamento certo.. me trazia um errado.. exemplo:
SELECT ENAME,
SAL,
JOB,
DEPTNO
FROM EMP A
WHERE SAL IN(SELECT MAX(SAL)
FROM EMP B
WHERE DEPTNO = 30)
Isso da ERRO além do 30 traz o 40.
Mas dessa forma..
SELECT ENAME,
SAL,
JOB,
DEPTNO
FROM EMP A
WHERE SAL IN(SELECT MAX(SAL)
FROM EMP B
WHERE A.DEPTNO = B.DEPTNO
AND DEPTNO = 30)
Retorna apenas o do 30 certinho.. Join na própria tabela hehe..
Valeu mota!
select max(cargo)
from empregados
where ...