2015-01-01 43 views
0

這是我正在使用的數據庫的一部分。SQL多個活動工作查詢

  • cont_employee(EMP_NO PK,emp_fname,emp_lname的,birth_date)
  • contract(contractor_no PK,EMP_NO,job_no,IS_ACTIVE)

所以我試圖建立一個查詢,將顯示我已經從事過多個活躍工作的員工。到目前爲止,我已經設法編寫了一個查詢,該查詢將爲我提供一個正在處理一個或多個活動作業的人員列表。

SELECT 
    cont_employee.*,contract.* 
FROM 
    cont_employee 
JOIN 
    contract ON contract.emp_no = cont_employee.emp_no 
WHERE 
    is_active = 1 

我不確定如何從這一點取得進展。

回答

1

您需要某種聚合。這裏是我的建議,假設is_activecontractor表中,這就是你的查詢中的真正含義:

SELECT ce.emp_no 
FROM cont_employee ce JOIN 
    contractor c 
    ON c.emp_no = ce.emp_no 
WHERE c.is_active = 1 
GROUP BY ce.emp_no 
HAVING COUNT(*) > 1;