2016-09-21 98 views
-2

表結構中的所有項目工作的僱員名單:SQL查詢來獲取誰從位置

  • Employee(EMP_ID,EMP_NAME,emp_age)
  • ProjectDetails(PROJID,p_name,p_location)
  • EmpLoyeeProject(emp_no,project_num,hrs)

對於員工來說,這種關係是多對多的關係。

您能否幫忙編寫一個SQL查詢來獲取eidename爲那些位於「OneLocation」中的所有項目的員工?

+0

位於什麼? –

+0

伊娜像地名裏的位置SFO。我的意思是一個位置 –

回答

0
SELECT e.emp_id, e.emp_name 
    FROM Emplyee e 
    INNER JOIN EmpLoyeeProject ep 
    ON e.emp_id = ep.emp_no 
    AND ep.project_num IN (
     SELECT DISTINCT ep.project_num 
     FROM EmpLoyeeProject epr 
     INNER JOIN ProjectDetails ep 
     ON epr.project_num = p.projid 
     WHERE p_location = 'OneLocation' 
    ) 
+0

此查詢應提供所有在某個位置工作的emp。但不會返回在屬於特定位置的所有項目中工作的員工 –

0

我想你可以獲取所有通過內參與項目的員工列表如下加入:

SELECT e.emp_id, e.emp_name 
FROM Emplyee e 
INNER JOIN EmpLoyeeProject ep ON ep.emp_no = e.emp_id 
INNER JOIN ProjectDetails pd ON pd.projid = ep.project_num 
    AND pd.p_location = 'youLocation' 
0

如果我正確地理解您的架構,SQL查詢可能看起來像:

select distinct emp_id, emp_name from Emplyee e 
     inner join EmpLoyeeProject ep on ep.emp_no=e.emp_id 
     inner join ProjectDetails p on p.projid=ep.project_num 
    where p_location=? 
0

你可以試試這個解決方案,它也允許你選擇多個位置。

這是您的查詢所需的最低限度,

SELECT 
    e.emp_id 
, e.emp_name 
FROM 
    employee   e 
JOIN employeeproject ep on e.emp_id = ep.emp_no   -- assuming that ep.emp_no and e.emp_id are the same value (most likely the case) 
join projectdetails pd on ep.projid = pd.project_number -- assuming that these are the same value. 
WHERE 
    p_location in ('Melbourne') -- set your location , you can also go ('melbourne','sydney','adelaide') 

但是我將擴大它一點點地提供多一點的數據,使之成爲誰永遠是要求的信息多一點有意義。

SELECT 
    e.emp_id 
, e.emp_name 
, pd.p_location 
, p_name 
FROM 
    employee   e 
JOIN employeeproject ep on e.emp_id = ep.emp_no   -- assuming that ep.emp_no and e.emp_id are the same value (most likely the case) 
join projectdetails pd on ep.projid = pd.project_number -- assuming that these are the same value. 
WHERE 
    p_location in ('Melbourne') -- set your location , you can also go ('melbourne','sydney','adelaide') 

如果你使用像SSRS報告服務,那麼你可以做一些很酷的東西像傳遞參數,你的報告基於關閉位置

你可以使事情就像一個下拉框,類似於下面,使它更加的人性化(這一個是因此用戶可以將數據限制在特定月份/月,他們都希望看看。

enter image description here