2014-04-22 94 views
2

我正在使用Oracle SQL(TeraTerm), 和 我試圖從兩個表CONSULTANT和PROJECT_CONSULTANT中加入特定信息,並且我只需要檢索工作超過40小時。下面是表在創建聯接尋找特定數據時遇到問題

項目顧問

PROJECT_ID  CONSULTANT_ID NUMBER_HOURS 
    --------------- --------------- ------------ 
    94738949  49620928     6 
    45699847  34879223     57 
    45699847  95928792     44 
    45699847  04875034     59 
    19870398  49620928     32 
    30495394  95928792     57 
    30495394  07811473     50 
    62388923  07811473     82 

和顧問

CONSULTA NAME        ZIP START_DT 
    -------- -------------------------------- ----- --------- 
    CON_TITLE 
    ------------------------- 
    49620928 Tom Jones      39875 01-SEP-98 
    Junior Consultant 

    04875034 Jack Johnson      29087 05-OCT-93 
    Manager 

    34879223 Lanny Harris      03944 30-APR-04 
    Principal 


    CONSULTA NAME        ZIP START_DT 
    -------- -------------------------------- ----- --------- 
    CON_TITLE 
    ------------------------- 
    95928792 Michael Johnson     02953 22-JUN-02 
    Senior Manager 

    07811473 Wendy Adams      29087 05-JUL-05 
    Senior Consultant 

我想出的代碼

select Consultant_ID, Name, Zip, and Number_Hours 
    from Consultant 
    Inner Join project_consultant 
    ON Consultant.Consultant_ID=project_consultant.Consultant_ID 
    WHERE project_consultant.number_Hours>40; 

我得到一個錯誤

ERROR at line 1: 
    ORA-00936: missing expression 

我只是想知道如何編寫連接語句正確任何幫助將是真棒,因爲我無法知道如何解決您不要在select子句中使用and這個連接語句

+2

'和'不選擇接受條款 – Bender

回答

1

select c.Consultant_ID, c.Name, c.Zip, pc.Number_Hours 
from Consultant c Inner Join 
    project_consultant pc 
    on c.Consultant_ID = pc.Consultant_ID 
where pc.number_Hours > 40; 

您還需要select子句中的表別名,以清楚表Consultant_Id引用的是什麼表。

編輯:

你可能真的想總和員工的小時數。如果是這樣,你需要一個聚集:

select c.Consultant_ID, c.Name, c.Zip, sum(pc.Number_Hours) 
from Consultant c Inner Join 
    project_consultant pc 
    on c.Consultant_ID = pc.Consultant_ID 
group by c.Consultant_ID, c.Name, c.Zip 
having sum(pc.number_Hours) > 40; 
1

不能使用在SELECT子句中

試試這個

SELECT C.Consultant_ID, C.Name, C.ip, PC.Number_Hours 
    FROM Consultant C 
    INNER Join project_consultant PC 
    ON C.Consultant_ID=PC.Consultant_ID 
    WHERE PC.number_Hours > 40; 
0
select c.Consultant_ID, c.Name, c.Zip, p.Number_Hours 
    from Consultant c 
    Inner Join project_consultant p 
    ON c.Consultant_ID=p.Consultant_ID 
    WHERE p.number_Hours>40; 
+0

你能解釋一下你的答案嗎?它目前不完整。 – bjb568