1

部門のリストと、その部門に出席する人数の割合が必要です。

出力:

  • 販売 = 出席率 30%
  • 会計 = 出席率 15%

表 EMP:

EMPID FNAME LNAME DEPT
001……ジョン……ロック……セールス
002……リサ……コンラッド……経理
003……ジェリー……砦……ビリング
004……サラ……デュバル……セールス

テーブル出席:

EMPID PARTY_ATTEND
001……や
002……ん
003……ん
004……や

誰かが私を正しい方向に向けることができますか? いくつかのコードを書き留めていますが、すべてを結び付ける方法がわかりません。私は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

ヘルプ?私の脳は揚げられています...

4

1 に答える 1

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;

出力:

部門の割合
-------------------- ----------
会計 0
請求 0
売上100

データでは、パーティーに参加するすべての従業員が営業部門の従業員であるため、出力は期待したものではありません...

于 2013-10-30T20:33:21.280 に答える