2017-10-07 11 views
0

J'ai trois tablesmoyenne en utilisant avec le groupe par MySQL

EMPLOYEE table with ID and NAME 
COMPANY table with ID and NAME 
and 
SALARY table with EMPLOYEE_ID, COMPANY_ID and SALARY 

Je voulais imprimer le nom de chaque entreprise où le salaire moyen est supérieur ou égal à 40000

Ma requête est

Select distinct COMPANY.NAME from COMPANY,SALARY,EMPLOYEE WHERE SALARY.COMPANY_ID=COMPANY.ID and (select avg(SALARY) from SALARY,EMPLOYEE WHERE SALARY.EMPLOYEE_ID=EMPLOYEE.ID) >=40000; 
+1

Nous avons cessé d'écrire des requêtes de cette façon vers 1992. Venez. Rejoignez-nous. – Strawberry

Répondre

3

Vous pouvez grouper par le nom de l'entreprise et avoir la condition dans la clause having:

SELECT c.name 
FROM  company c 
JOIN  salary s ON c.id = s.company_id 
GROUP BY c.name 
HAVING AVG(salary) >= 40000