Question sur sql server

Bonjour,

voila je voudrais trouver la solution pour une requête sur sql server:

je possède 2 tables:
emp(#empno,ename,sal,deptno)
dept(#deptno,dname)

# pour un indiquer la clé

vous avez remarqué qu'ils sont relié grâce au champs deptno

ma question est:
je voudrais afficher le nom des employés les mieux payés de chaque département.
la seul solution que j'ai trouvé est:

select ename,max(sal),dname
from emp,dept
 where dept.deptno=emp.deptno
group by dname,ename;


mais voici le résultat que ça me donne

ENAME MAX(SAL) DNAME
---------- ---------- --------------
ADAMS 1100 RESEARCH
TURNER 1500 SALES
MILLER 1300 ACCOUNTING
JAMES 950 SALES
MARTIN 1250 SALES
KING 5000 ACCOUNTING
CLARK 2450 ACCOUNTING
SMITH 800 RESEARCH
WARD 1250 SALES
JONES 2975 RESEARCH
ALLEN 1600 SALES

ENAME MAX(SAL) DNAME
---------- ---------- --------------
SCOTT 3000 RESEARCH
FORD 3000 RESEARCH
BLAKE 2850 SALES

or puisque je n'ai que 3 département différent, j'ai besoin d'afficher 3 lignes chacun avec un departement et l'employé le mieux payé
j'insiste qu'il faut afficher nom de l'employé(ename), le salaire(sal), et le nom de departement (dname)

en espérant avoir bien expliqué
je vous remercie de bien vouloir m'aider et vous demande de me répondre le plus vite
c'est urgent

merci encore une fois
Configuration: Windows Vista
Firefox 3.0.6

3 réponses

  1. Bjr je ne sais pas trop mais essaye ça voir tu me met au courant

    SELECT ename, sal, dname
    FROM emp, dept
    WHERE emp.deptno = emp.deptno
    AND sal = (SELECT max(sal)  FROM emp)
    
    


    cdlt.
    1. Nope :(
      ca ne donne pas la bonne reponse
      voila ce que ca donne
      ENAME SAL DNAME
      ---------- ---------- --------------
      KING 5000 ACCOUNTING
      KING 5000 RESEARCH
      KING 5000 SALES
      KING 5000 OPERATIONS
      1. Bonjour,

        Le code suivant devrait faire ce que tu veux
        select deptno , dname ,
        (select top 1 ename , sal from emp
        where emp.deptno = dept.deptno
        order by sal desc)
        from dept;


        A plus