2013-10-30 131 views
1

我需要一個部門名單以及該部門將出席的人數百分比。獲得參加人數的百分比

輸出:

  • SALES = 30%主治
  • 會計= 15%主治

表EMP:

 
EMPID FNAME LNAME DEPT 
001......John......Lock...Sales 
002......Lisa......Conrad...Accounting 
003......Jerry.....Forts...Billing 
004......Sara......Duval...Sales 

表ATTENDANCE:

 
EMPID PARTY_ATTEND 
001......Y 
002......N 
003......N 
004......Y 

任何人都可以指向正確的方向嗎?我寫了一些代碼,但我不知道如何將所有內容綁定在一起。我打算使用JOIN和一些反擊,但是這是我迄今爲止...

select fname, lname, a.party_attend, a.empid from emp 

select count(*) 
    from attendance a 
inner join emp on a.empid = emp.empid 
where a.party_attend = 'Y' 

然後數學部分我不知道......

select sum()/count(*)*100 

幫助?我的大腦是炒...

回答

2

試試這個:

CREATE TABLE emp (
    empid NUMBER, 
    fname VARCHAR2(20), 
    dept VARCHAR2(20) 
); 

CREATE TABLE attendance (
    empid NUMBER, 
    party_attend VARCHAR2(1) 
); 

INSERT INTO emp VALUES (1,' John', 'Sales'); 
INSERT INTO emp VALUES (2,' Lisa', 'Accounting'); 
INSERT INTO emp VALUES (3,' Jerry', 'Billing'); 
INSERT INTO emp VALUES (4,' Sara', 'Sales'); 

INSERT INTO attendance VALUES (1, 'Y'); 
INSERT INTO attendance VALUES (2, 'N'); 
INSERT INTO attendance VALUES (3, 'N'); 
INSERT INTO attendance VALUES (4, 'Y'); 

COMMIT; 

SELECT 
    e.dept, 
    COUNT(DECODE(att.party_attend, 'Y', 1, NULL))/COUNT(1) * 100 AS percentage 
    FROM 
    emp e JOIN attendance att ON (e.empid = att.empid) 
GROUP BY e.dept; 

輸出:

DEPT     PERCENTAGE 
-------------------- ---------- 
Accounting     0 
Billing      0 
Sales      100

輸出是不是你所期望的,因爲在你的數據參加晚會的所有員工都是從銷售部...

+0

非常感謝!我正在尋找什麼 – BFF

+0

對不起,我剛剛製作的輸出,但這正是我正在尋找如何正確使用連接和數學部分 – BFF