2014-07-23 42 views
-6

這個問題一直困擾着我的生活。考慮一下這個數字。帶ER圖的SQL查詢練習

[Click here for Figure]

  1. 寫SQL語句(s)表示,會發現每個項目的所有員工的平均小時。

  2. 編寫SQL語句,其中列出僱員編號爲1251的僱員與任務有關的所有項目,但不作爲經理。

這是我..

查詢1:

SELECT AVG(ASSIGN_HOURS) 
FROM ASSIGNMENT a, PROJECT P 
WHERE p.EMP_NUM=a.EMP_NUM; 

查詢2:

SELECT * 
FROM PROJECT P, ASSIGNMENT A 
WHERE P.EMP_NUM<>1251 
    AND A.EMP_NUM=1251; 

請幫幫忙!

+0

什麼是你的做法?到目前爲止,你有什麼? – Timo

+1

這是一項任務,但不是一個問題。在處理任務時,你的問題是什麼? –

+0

選擇AVG(ASSIGN_HOURS)FROM ASSIGNMENT a,PROJECT P WHERE p.EMP_NUM = a.EMP_NUM; 1 – leah

回答

1

以下是將解決您的目的的查詢。

查詢1

SELECT prj.proj_num 
    ,asg.emp_num 
    ,avg(asg.assign_hours) 
FROM Project prj 
INNER JOIN Assignment asg 
    ON prj.proj_num = asg.proj_num 
GROUP BY prj.proj_num 
    ,asg.emp_num 

SQL FIDDLE FOR FIRST QUERY

查詢2

SELECT prj.proj_num 
     ,prj.proj_name 
     ,asg.* 
FROM Project prj 
INNER JOIN Assignment asg 
    ON prj.proj_num = asg.proj_num 
WHERE asg.emp_num = 1251 
    and prj.emp_num <> 1251 

SQL FIDDLE FOR SECOND QUERY

假設根據您的意見做 - 在計劃表中emp_num列將有經理emp_num。

注:測試和工程

+0

+1我將與這個答案一起走 – MarmiK

+0

@MarmiK謝謝,我正在學習SQL,你提高了我的信心! – Murtaza

+0

我剛剛重新格式化了您的答案,使其成爲利基。 :)雖然歡迎。 – MarmiK