2017-08-12 99 views
-2

的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部分嘗試的內容。 –

回答

0
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

我希望下面的查詢能幫到你。

  1. 每個部門的員工沒有?
SELECT DEPTNO, 
     count(*) AS NO_OF_PERSONS 
FROM EMP 
GROUP BY DEPTNO; 
  • 在各部門各職種有多少人呢?
  • SELECT job, 
         deptno, 
         count(*) AS NO_OF_PERSONS 
    FROM EMP 
    GROUP BY job, 
         deptno; 
    
  • 顯示在部門少於6僱員僱員的部門和沒有。
  • SELECT deptno, 
         count(*) 
    FROM emp 
    GROUP BY deptno 
    HAVING count(*) < 6; 
    
  • 找到員工姓名和工資是誰在賺部門最高薪水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'.'錯誤附近獲得'錯誤的語法。 –

    相關問題