2016-03-21 4 views
-1

私は自分自身を学び、教えることを試みていますが、sqldeveloperとsqlを一般的に教えようとしていますが、 「自分に報告した人がいる各人の直接報告の数を報告する」というクエリ。SQLステートメントは、誰かが彼または彼女に報告している人の直接報告の数を報告する

私はもともと、この持っていた:

SELECT EMPLOYEES.EMPLOYEENUMBER, COUNT(EMPLOYEES.REPORTSTO) FROM EMPLOYEES; 

をそれは私に結果を与えることはありません。私はここで何が欠けているのか分からない。私が信じている唯一のテーブルは、「従業員」テーブルです。

employees表の列は、EMPLOYEENUMBER、LASTNAME、LASTNAME、EXTENTION、EMAIL、OFFICECODE、REPORTSTO、JOBTITLEです。

+1

は[GROUP BY](HTTPを見てくださいつまり、あなたのテーブルには、(おそらく異なるデータ型を持つ)のような構造のものを持っています/docs.oracle.com/javadb/10.4.2.1/ref/rrefsqlj32654.html) –

+0

結果が表示されませんか。私はあなたに集計関数とGROUP BYの権利についてのエラーを与えていると思いますか? –

+0

はい、これは私が得たエラーです。 – Kleigh85

答えて

0

とすると、REPORTSTOは、FORIEGN KEYであり、EMPLOYEENUMBERに戻っています。そして、あなたはREPORTSTO列にGROUP BYでき

CREATE TABLE EMPLOYEES (
    EMPLOYEENUMBER INT PRIMARY KEY, 
    FIRSTNAME  VARCHAR2(50), 
    LASTNAME  VARCHAR2(50), 
    EXTENTION  VARCHAR2(4), 
    EMAIL   VARCHAR2(50), 
    OFFICECODE  INT, 
    REPORTSTO  INT REFERENCES EMPLOYEES(EMPLOYEENUMBER), 
    JOBTITLE  VARCHAR2(50) 
); 

::/:

SELECT REPORTSTO AS EMPLOYEENUMBER, 
     COUNT(1) AS number_reporting_to 
FROM EMPLOYEES 
WHERE REPORTSTO IS NOT NULL 
GROUP BY REPORTSTO; 
関連する問題