的SQL Server 2014 Management Studio中更新查询

问题描述:

的SQL Server 2014 Management Studio中更新查询

empid, empname, job, hiredate, sal, comm, deptno 

我想验证这是否正确我有一个表Employee与列:

  1. 每个部门的雇员数
  2. 如何每个部门的每种工作都有很多人
  3. 显示员工少于6人的部门和员工数
  4. 查找雇员名和工资是谁在部门收入最高薪酬20

这是我曾尝试:

查询#1:

select DEPTNO, count(*) AS NO_OF_PERSONS 
from EMP 
group by DEPTNO; 

查询#2:

select job, count(*) AS NO_OF_PERSONS 
from EMP 
group by job; 

查询#3:

update EMPLOYEE 
set sal = sal + 1000 
where com > 2500; 

而我无法做第四部分。

+2

Ple ase,显示示例数据(以文本形式)并预期结果 – Sami

+0

请包括您为第4部分尝试的内容。 –

select e1.name, e1.sal 
    from EMP e1 
where e1.DEPTNO = 20 
    and not exists(select * 
        from EMP e2 
        where e2.DEPTNO = 20 
        and e2.sal > e1.sal); 

我希望下面的查询能帮到你。

  1. 每个部门的员工没有?
SELECT DEPTNO, 
     count(*) AS NO_OF_PERSONS 
FROM EMP 
GROUP BY DEPTNO; 
  1. 在各部门各职种有多少人呢?
开始=>
SELECT job, 
     deptno, 
     count(*) AS NO_OF_PERSONS 
FROM EMP 
GROUP BY job, 
     deptno; 
  1. 显示在部门少于6雇员雇员的部门和没有。
开始=>
SELECT deptno, 
     count(*) 
FROM emp 
GROUP BY deptno 
HAVING count(*) < 6; 
  1. 找到员工姓名和工资是谁在赚部门最高薪水20
开始=>
SELECT Max(salary_amount), 
     empid 
FROM EMP 
WHERE deptno = 20 
GROUP BY empid; 

你可以开始学习基本SQL here

+0

在上一个示例中,您需要交换WHERE和GROUP BY条款。 –

+0

@Dan,在两种情况下生成的结果都是相同的,因为在任何情况下WHERE都是在聚合之前执行的。 – zarruq

+0

如果您在GROUP BY之后放置WHERE,则会在关键字WHERE'.'错误附近获得'错误的语法。 –