选择 - 加入具有和组通过PLSQL
问题描述:
我想谁在“家具”部门 工作的员工数目我有两个表 教研室 的dept_id DEPT_NAME 100,服装, 200,家具,选择 - 加入具有和组通过PLSQL
2.sales emp_id,sales_amt,dept_id
我已经做了这个..但它没有显示任何结果。
select count(emp_id) from department a join sales b on a.dept_id = b.dept_id group by dept_id having dept_name='furniture';
我知道我可以使用这个(因为我知道家具的dept_id = 200):
select count(emp_id) from sales group by dept_id having dept_id=200;
,但我想知道的是在第一个代码问题。
答
HAVING用于在聚合发生后过滤行。
打破你的代码:
select count(emp_id)
from department a
join sales b on a.dept_id = b.dept_id
group by a.dept_id
此SQL代码只返回只有1列,这是员工(count(emp_id)
)的数量的表格的结果。以下HAVING子句(having dept_name='furniture'
)找不到dept_name
列,这会导致错误。
通过改变选择的列,下面的SQL代码可以工作(取决于你的RDBMS):
select count(emp_id), dept_name
from department a
join sales b on a.dept_id = b.dept_id
group by a.dept_id
having dept_name= 'furniture'
或使用的dept_id = 200条件
Tahnk你的帮助。 – Paras