GARANTIR DESCONTO

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....


Evandroliveira

Evandroliveira

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar