2015-07-04 2 views
-5

Я создал две таблицы: Department(deptno,dname,location) и Employee(empno,ename,post,gender,salary,deptno). Я связал внешний ключ с deptno, чтобы связать таблицы.получить значение из другой таблицы, а затем фильтр в среднем

Мой вопрос, как я могу найти название отдела, чья средняя зарплата превышает 20000.

Если бы в таблице Employee я бы это, но как я могу получить его из таблицы Department.

ответ

1

Я предполагаю, что вы не слышали объединений и агрегатный ранее, а проверить это, чтобы показать расположение, название отдела и Avg зарплату отдела которого средний оклад> 20000

select d.location, d.dname, avg(e.salary) 
    from department d, employee e 
where d.deptno = e.deptno 
group by d.location, d.dname 
having avg(e.salary) > 20000 
+0

Это сработало, человек, спасибо, много. Может ли PLZ объяснить мне выбрать d.dname, avg (e.salary) из отдела d, сотрудник e, где d.deptno = e.deptno group by d.dname с avg (e.salary)> 20000 .... вот что делал d и e actall –

+0

d и e являются псевдонимами для обеих таблиц, его легкодоступными переменными вместо использования полного имени таблицы – Spidey

+0

было ли я использовать имя таблицы как бы код был тогда ... я не могу получить это ... показать его, используя имя таблицы только один раз спасибо –

2
SELECT 
    d.dname 
FROM  
    Department AS d 
    JOIN Employee AS e ON d.deptno = e.deptno 
GROUP BY 
    d.dname 
HAVING AVG(e.salary) > 20000 
+3

Я желаю, чтобы мы Wouldn» t поощрять этот тип вопросов, где они не проявляют ни малейшего усилия. – sstan

+0

, возможно, добавьте некоторые выборочные данные в свой вопрос и запрос, который вы попробовали, и результаты, которые вы получаете. Затем объясните, почему данные не соответствуют ожидаемым. Или любые ошибки, которые вы можете получить – JamieD77

Смежные вопросы