Requêtes SQL correctes ?

Résolu
romca Messages postés 48 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 avril 2010 - 24 avril 2008 à 13:15
romca Messages postés 48 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 avril 2010 - 28 avril 2008 à 22:17
Salut à tous,
j'ai un exo avec des requêtes SQL à faire. J'ai la correction mais pour certaines que j'ai faites et qui ne sont pas identiques à la correction j'aimerais savoir si elles sont bonnes, autrement dit si mon raisonnement est bon.

Il n'y en a que 3, en PJ. Vous pouvez corriger directement sur le .doc si vous voulez et le renvoyer.
Merci de vos réponses.
Salutations.Les tables<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

 

EMP(ENO, ENOM, PROF, DATEEMB, SAL, COMM, DNO)

                ENO :   numéro d'employé, clé

ENOM :   nom de l'employé

PROF :   profession (directeur n'est pas une profession)

DATEEMB :   date d'embauche

SAL :   salaire

COMM :   commission (un employé peut ne pas avoir de commission)

DNO :   numéro de département auquel appartient l'employé

 

DEPT(DNO, DNOM, DIR, VILLE)

DNO :   numéro de département, clé

DNOM :   nom du département

DIR :   directeur du département (correspond à un n° d’employé)

VILLE :   lieu du département (ville)

 

 

Les requêtes

 

Requête 17 : Donner les noms des employés du département COMMERCIAL embauchés le même jour qu'un employé du département PRODUCTION.

 

SELECT ENOM

FROM EMP

WHERE DATEEMB IN (

                (SELECT DATEEMB

FROM EMP EComm

WHERE EComm.DNO=DEPT.DNO

AND DEPT.DNOM=’Commercial’)

 

INTERSECT

 

(SELECT DATEEMB

FROM EMP EProd

WHERE EProd.DNO=DEPT.DNO

AND DEPT.DNOM=’Production’)

);

 

 

Requête 18 : Donner les noms des employés embauchés avant tous les employés du département 1.

 

SELECT EMP.ENOM

FROM EMP E1, EMP Dept1

WHERE E1.DATEEMB > Dept1.DATEEMB

AND Dept1.DNO=’1’;

 

Requête 24 :   Donner les noms des employés ayant le salaire maximum de chaque département.

 

SELECT ENOM,SAL,DNO

FROM EMP

GROUP BY DNO HAVING MAX(AVG(SAL));

 

Ou bien ?

 

SELECT ENOM,AVG(SAL),DNO

FROM EMP

GROUP BY DNO HAVING MAX(SAL);

 


<!-- / message -->
<!-- attachments -->

4 réponses

romca Messages postés 48 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 avril 2010
28 avril 2008 à 22:17
Ok merci.
J'ai pris en compte tes remarques.

Cdt.
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
24 avril 2008 à 16:25
Salut

On est pas la pour faire les exos, cf reglement

Dans la requete 17, j'aurais bien vu un group by

Dans la requete 18, une sous requete avec un min

Dans la requete 19, AVG --> Moyenne je ne vois pas a quoi il sert.

Voila des pistes pour ton exo
0
romca Messages postés 48 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 avril 2010
24 avril 2008 à 17:04
Ok merci pour tes réponses,
Un forum c'est une aide non ?
Je prend des cours par correspondance et les réponses mettent un certains temps à arriver quand on pose la question par mail ou elles n'arrivent même pas parfois (CNED dur dur ou CNAM dépend des UEs).

Si c'est le reglement y'a peut être d'autres forums sans restriction sur cette question. C'est quand on débute qu'on en a le plus besoin !

A+
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
24 avril 2008 à 20:50
Ok, c'était juste pour avertir,
on est la pour aider mais pas pour faire les TP et les programmes,
c'est pour ca que j'ai indiqué les pistes qu'il fallait suivre
et pas donné la réponse brut de fonderie.

Bon courage dans tes cours.
0
Rejoignez-nous