Fórum Tabelas relacionadas #26774
20/10/2007
0
Eae pessoa, td bem,, seguinte. estou com uma dúvida relativamente simples... o que tenhu é o seguinte, duas tabelas.. uma EMP.. outra DEPT.
Na tabela EMP tenhu dado dos empregados , os dados relevantes agora é ENAME(nome do empregado) e SAL (salario do empregado) DEPTNO (departamento)
Na outra tabela tenhu dados dos departamentos,, tendo um DEPTNO (departamento) e o local do departamento LOC.....
Irei relacionar as duas tabelas pelo campo DEPTNO até aqui OK...
O que quero.. é mostrar o maior salário do empregado da tabela EMP por localidade q ta na tabela DEPT.. são 4 localidades diferentes... e o nome do portador do maior salário... não sei se fui claro.. mas um exemplo abaixo .
faço assim..
SELECT emp.ename,
max(emp.sal),
dept.loc
FROM emp,dept
WHERE emp.deptno = dept.deptno
GROUP BY emp.ename, dept.loc
A moral é o seguinte... eu quero agrupar só a localidade mas não os usuários (ename).... se eu tirar o emp.ename.. ele mostra o maior salário por localidade.. mas se adiciono o emp.ename.. ele tbm agrupa por nome.. e mostra tds os nomes , mas só queria mostrar o nome do portador do maior salário..
Não sei se fui claro.. mas qualquer ajuda agradeço....
Na tabela EMP tenhu dado dos empregados , os dados relevantes agora é ENAME(nome do empregado) e SAL (salario do empregado) DEPTNO (departamento)
Na outra tabela tenhu dados dos departamentos,, tendo um DEPTNO (departamento) e o local do departamento LOC.....
Irei relacionar as duas tabelas pelo campo DEPTNO até aqui OK...
O que quero.. é mostrar o maior salário do empregado da tabela EMP por localidade q ta na tabela DEPT.. são 4 localidades diferentes... e o nome do portador do maior salário... não sei se fui claro.. mas um exemplo abaixo .
faço assim..
SELECT emp.ename,
max(emp.sal),
dept.loc
FROM emp,dept
WHERE emp.deptno = dept.deptno
GROUP BY emp.ename, dept.loc
A moral é o seguinte... eu quero agrupar só a localidade mas não os usuários (ename).... se eu tirar o emp.ename.. ele mostra o maior salário por localidade.. mas se adiciono o emp.ename.. ele tbm agrupa por nome.. e mostra tds os nomes , mas só queria mostrar o nome do portador do maior salário..
Não sei se fui claro.. mas qualquer ajuda agradeço....
Evandroliveira
Curtir tópico
+ 0
Responder
Posts
29/12/2007
Mleal
Evandro,
Acho que vc vai ter de apelar para uma subconsulta do tipo:
´SELECT emp.name,dept.loc,emp.sal FROM emp,dept WHERE emp.deptno=dept.deptno AND emp.sal IN (SELECT max(emp.sal)) GROUP BY emp.name,dept.loc,emp.sal´
Observe que a subconsulta elimina o agrupamento por max(emp.sal), já que este parâmetro está implícito nela.
Teste e retorne se funcionar.
abçs
MLeal
Acho que vc vai ter de apelar para uma subconsulta do tipo:
´SELECT emp.name,dept.loc,emp.sal FROM emp,dept WHERE emp.deptno=dept.deptno AND emp.sal IN (SELECT max(emp.sal)) GROUP BY emp.name,dept.loc,emp.sal´
Observe que a subconsulta elimina o agrupamento por max(emp.sal), já que este parâmetro está implícito nela.
Teste e retorne se funcionar.
abçs
MLeal
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)