4 relations –EMPLOYE –SERVICE –LOCALITE –ADRESSE

Preview:

Citation preview

• 4 relations– EMPLOYE– SERVICE– LOCALITE– ADRESSE

• Dans quel service travaille De Nardi ?

• Dans quelle ville est implanté le service de Comptabilité ?

• Qui dirige le service de Comptabilité ?

• Où habite De Nardi ?

• Où habite le chef de la R&D ?

REQ 1

select employe.nom, employe.prenom

from employe

REQ 2

REQ 2

select employe.nom, employe.prenom

from employe

where date_emb < { d ’1995-01-01’ }

REQ 3

REQ 3

select nom, prenom, adresse

from employe, adresse

where employe.code_emp = adresse.code_emp

REQ 4

REQ 4

select employe.nom, employe.prenom

from employe, service

where employe.service = service.code_serv and service.nom_serv='Marketing'

REQ 5

REQ 5

select employe.nom, employe.prenom, service.nom_serv

from employe, service

where employe.service=service.code_serv

REQ 6

REQ 6

select service.nom_serv

from service, localite

where service.code_loc = localite.code_loc

and (localite.ville='Lyon' or localite.ville='Paris')

REQ 7

REQ 7

select service.nom_serv

from service, adresse

where service.code_chef=adresse.code_emp and adresse.ville='Paris';

REQ 8

REQ 8

select employe.nom

from employe, service

where employe.service = service.code_serv and employe.salaire > 3000

and nom_serv=‘Marketing’

REQ 9

REQ 9

select employe.nom

from employe, service

where service.code_chef = employe.code_emp

REQ10 : moyenne des salaires des employés

CONSEIL : moyenne des salaires des employés

REQ10 : moyenne des salaires des employés

select avg(salaire)

from employe

REQ11 : moyenne des salaires des titulaires

REQ11 : moyenne des salaires des titulaires

select avg(salaire)

from employe

where titulaire=1

REQ12 : nombre d’employés du service marketing ayant un salaire supérieur à

3000€

REQ12 : nombre d’employés du service marketing ayant un salaire supérieur à

3000€

select count(code_emp)

from employe, service

where service=code_serv

and nom_serv='Marketing'

and salaire > 3000

REQ13 : maximum et minimum des salaires des employés travaillant dans

le service R&D

REQ13 : maximum et minimum des salaires des employés travaillant dans

le service R&D

select max(salaire), min(salaire)

from employe, service

where service=code_serv

and nom_serv='R&D'

REQ14 : nom et prénom des employés dans l’ordre alphabétique croissant du

nom

REQ14: nom et prénom des employés dans l’ordre alphabétique croissant du

nom

select nom, prenom

from employe

order by nom

REQ15: nom et prénom des employés pour lesquels le second caractère du code de

service est un 1, triés dans l’ordre alphabétique décroissant des noms

REQ15: nom et prénom des employés pour lesquels le second caractère du code de

service est un 1, triés dans l’ordre alphabétique décroissant des noms

select nom, prenom

from employe

where service like '_1%'

order by nom desc

REQ16: nom, localité d’implantation et département du service des employés dont

le nom commence par A ou B

REQ16: nom, localité d’implantation et département du service des employés dont

le nom commence par A ou B

select nom_serv, ville, departemen

from employe, service, localite

where service = code_serv

and service.code_loc = localite.code_loc

and (nom like 'A%' or nom like 'B%')

REQ17: nombre d’employés ayant un salaire compris entre 3000€ et 4500€

REQ17: nombre d’employés ayant un salaire compris entre 3000€ et 4500€

select count(code_emp)

from employe

where salaire >= 3000 and salaire <= 4500

REQ18: nom et ville des services dans lesquels au moins un employé

gagne plus de 3800€

REQ18: nom et ville des services dans lesquels au moins un employé

gagne plus de 3800€

select distinct nom_serv, ville

from employe, service, localite

where service=code_serv

and service.code_loc=localite.code_loc

and salaire >= 3800

REQ19: moyenne des salaires des employés groupés par service, avec le

nom de ces services

REQ19: moyenne des salaires des employés groupés par service,avec le nom de ces services

select nom_serv, salaire

from employe, service

where service = code_serv

REQ19: moyenne des salaires des employés groupés par service, avec le nom de ces services

select nom_serv , avg ( salaire )

from employe, service

where service = code_serv

group by nom_serv

REQ20 nom et prénom des employés avec le nom de leur chef de service

REQ20 nom et prénom des employés avec le nom de leur chef de service

REQ20 nom et prénom des employés avec le nom de leur chef de service

select employe.nom , nom_serv, employe1.nom

from employe , service , employe employe1

where employe.service=code_serv

and code_chef=employe1.code_emp

REQ21 nom des chefs des services avec le nombre d’employés dans leur service

REQ21 nom des chefs des services avec le nombre d’employés dans leur service

select employe1.nom, count(employe.code_emp)

from employe , service , employe employe1

where employe.service = code_serv

and code_chef = employe1.code_emp

group by employe1.nom

REQ22 somme des salaires des employés groupés par services dans lesquels plus de 3 employés travaillent

REQ22 somme des salaires des employés groupés par services dans lesquels plus de 3 employés travaillent

select nom_serv, code_emp

from employe, service

where service = code_serv

REQ22 somme des salaires des employés groupés par services dans lesquels plus de 3 employés travaillent

select nom_serv , sum ( salaire )

from employe, service

where service = code_serv

group by nom_serv

having count(code_emp)>3

REQ23 nom des services dans lesquels la moyenne des salaires est supérieure à 3800€

REQ23 nom des services dans lesquels la moyenne des salaires est supérieure à 3800€

select nom_serv, avg(salaire)

from employe, service

where service = code_serv

group by nom_serv

having avg(salaire)>3800

REQ24 nom des services dans lesquels la moyenne des salaires est supérieure à 3800€ et dont la localité d’implantation commence par M

REQ24 nom des services dans lesquels la moyenne des salaires est supérieure à 3800€ et dont la localité d’implantation commence par M

select nom_serv, ville , avg(salaire)

from employe, service, localite

where service = code_serv

and service.code_loc = localite.code_loc

and ville like 'M%'

group by nom_serv, ville

having avg(salaire)>3800

REQ25 employés habitant dans la même ville que leur chef de service.

REQ25 employés habitant dans la même ville que leur chef de service.

select nom , adresse.ville , code_chef , adresse1.ville

from employe , adresse , service , adresse adresse1

where employe.code_emp = adresse.code_emp

and service = code_serv

and code_chef = adresse1.code_emp

and adresse.ville = adresse1.ville

REQ26 employés gagnant plus que leur chef

REQ26 employés gagnant plus que leur chef

select employe.nom , employe.salaire ,

code_chef , employe1.salaire

from employe , service , employe employe1

where employe.service = code_serv

and code_chef = employe1.code_emp

and employe.salaire > employe1.salaire

REQ27 employés ayant le salaire minimum

REQ27 employés ayant le salaire minimum

select nom , salaire

from employe

where salaire = ( select min(salaire) from employe )

REQ28 chef de service gagnant le moins

REQ28 chef de service gagnant le moins

select nom, salaire

from employe, service

where code_chef=code_emp and salaire = ( select min(salaire) from employe, service where code_chef = code_emp )

REQ29 Code et nom des employés non chefs de service

REQ29 Code et nom des employés non chefs de service

select nom

from employe

where code_emp not in ( select code_chef from service

)

REQ29 employés (non chefs de service) gagnant plus qu’un chef de service

REQ29 employés (non chefs de service) gagnant plus qu’un chef de service

select nom

from employe

where employe.salaire > (

select min(salaire)

from employe , service

where code_emp = code_chef

)

Recommended