2016-04-08 14 views
0

Benim bir veritabanı sınıfı için küçük bir ödev yapıyorum. Tüm çalışan yöneticilerinin son adlarını ve ardından yönettikleri çalışanların sayısını listelemek için bir sql sorgusu yazmam gerekiyor.sql sorgu listesi çalışanlarının yöneticisi bir yönetici yönetir

SELECT emp_lname, COUNT(emp_no) "No_of_Employees" 
FROM Employee 
WHERE job_title = ('Manager', 'President') 
    AND emp_mgr_emp_no IS NOT NULL 
GROUP BY emp_lname 

böyle bir şey verir:

EMP_LNAME    No_of_Employees 
Blake     1 
Clark     1 
Jones     1 

INSERT INTO Employee (Emp_No, Emp_Fname, Emp_Lname, Emp_Status, 
Emp_Salary, Emp_Comm, Emp_HireDate, Emp_Mgr_Emp_No, Job_Title, Dept_No) 
VALUES (7566, 'Mary', 'Jones', 'active', 2975, NULL, '02-APR-92', 7839,'Manager', 20); 

Bu Şu anda bir sorgu için ne var: Bu tabloya bir çalışan eklemek için komut neye benzediği

Her yönetici için çalışan sayısını listelemek için nasıl değiştiririm (3 yöneticiyi yöneten Başkan dahil).

cevap

0

Bu özel çalışan tarafından yönetilen Çalışanların bir listesini almak için iç içe geçmiş sorguları kullanın ve kayıt sayısını sayın. Böyle

SELECT emp_lname, sum(select count(emp_no) FROM Employee B WHERE B.Emp_Mgr_Emp_No = A.emp_no) AS 'Count' FROM Employee A 

şey eksik ifade hata veriyor

+0

çalışmalıdır. –

+0

Benim için iyi çalışıyor. Doğrulamamı istiyorsanız CREATE ifadelerinizi ve INSERT ifadelerini buraya yapıştırın, ancak işe yarayacak –