[Reglé] Requetes en SQL2

Salut,
Tout d’abord je ne savais pas si je devais mettre mon post ici alors si je me suis trompé toutes mes excuses.

Voilà je commence les requetes en cours de Base de données et j’ai un petit problème (sinon je serais pas là ^^):

On a la relation :
EMP ( EMPNO, ENAME, JOB, MGR,HIREDATE,SAL,COMM,DEPTNO)

Sachant que DEPTNO et EMPNO sont des clefs uniques.

je dois faire une requete qui me donne les departement qui coutent le plus cher et le moins cher en terme de salaires. Il faut donner le résultat en une seule requête.

alors j’ai pensé faire comme ça :

select e.deptno
from emp e
group by e.deptno
having sum(e.sal)=min (select sum(e1.sal) as S
from emp e1
group by e1.deptno);

malheureusement sqlplus me dit que pour le min() il faut une expression (« missing expression »)

Please Help :stuck_out_tongue:

quelque chose du genre

select DEPTNO from EMP group by DEPTNO having sum(SAL) in (select min(sum(SAL)) from EMP group by DEPTNO)

devrait fonctionner.

il faut quand même voir si ton prof considère des requetes imbriquées comme étant une seule requete (si ce n’est pas le cas, c’est un vicieux)

Merci beaucoup :stuck_out_tongue:
sauf que ça marche pas vraiment puisque ta requete me retourne tous les numéro de département. Néanmoins tu m’as fourni une piste qui me manquait voilà comment je gère le truc :

SELECT E1.DEPTNO,SUM(E1.SAl)
FROM EMP E1
GROUP BY E1.DEPTNO
HAVING SUM(E1.SAl) = (SELECT MIN(S) FROM (SELECT SUM(E2.SAL) AS S FROM EMP E2 GROUP BY E2.DEPTNO))
OR SUM(E1.SAl) = (SELECT MAX (S) FROM (SELECT SUM(E2.SAL) AS S FROM EMP E2 GROUP BY E2.DEPTNO)) ;

Encore 1000 merci pour ton aide.

PS : ça me semble quand même un peu barbare alors si qqn voit comment simplifer la chose je reste ouvert aux suggestions

PS2 : le prof voulait dire « en une seule étape » par " une seule requete" donc on avait droit aux requetes imbriquées

ce serait

select min(sum(SAL)) from EMP group by DEPTNO

qui ne fonctionne pas?

ça me parait bizarre, quelle est ta version d’oracle?

C’est al version 9.2.0.1 enfin pour SQLPLUS

bizarre, c’est une version 8 que j’ai et ça fonctionne.

mais de toute façon ça devrait fonctionner sur n’importe quelle version (sauf une vraiment super vieille, ce qui est parfois le cas en ecole/fac)

Oulà je suis franchement désolé. J’ai fait une erreur en recopiant/modifiant ta requete. :stuck_out_tongue:
Le prof nous a dit de faire des trucs type EMP E1 et E1.EMPNO et j’ai du introduire une erreur à ce moment.

En fait tu avais raison ta requete marche parfaitement. :stuck_out_tongue:

ha :stuck_out_tongue:

oui, j’ai vu que tu avais mis des alias un peu partout, personnelement je n’aime pas trop ça, sauf pour les valeurs calculées (sum, min, etc) justement, et les requetes multitables avec des colonnes de même dénomination.

sinon, pour peu qu’on ait mis des noms appropriés à ses colonnes, on peut très bien se débrouiller sans.