2013-02-08 44 views
0

我試圖從一開始就解決了這個以下查詢,但我沒有得到該出把..從單一的表有兩個不同的員工ID在一個單一的存儲過程中選擇兩個員工姓名

查詢:

select distinct L.LeadBudget,L.CompanyName,L.LeadTitle,L.Status, 
E.Name as OwnerName,E.Name as 
CreatedUser 
from Leads L,Employee E where L.LeadId='2' 
and E.EmployeeId=L.LeadOwner and E.EmployeeId=L.CreatedUserId 

在上面的查詢我想

E.Name as OwnerName and E.Name as CreatedUser 
from a single Employee tables)..where E.EmployeeId=L.LeadOwner and 
E.EmployeeId=L.CreatedUserId 

,如果我用了OWNERNAME執行或創建的用戶我得到我想要得到這兩個名字data..but。

+0

我不太清楚你究竟有要求的,但是我覺得 'L.Name爲OWNERNAME,E.Name作爲CreatedUser'是你正在嘗試做的。 – Viehzeug 2013-02-08 12:45:45

+0

我沒有名字L表..我只有員工ID的...所有者名稱和創建的用戶都是員工ID在L表... – sample 2013-02-08 12:48:40

+1

什麼[RDBMS](http://en.wikipedia.org/wiki/Relational_database_management_system)您正在使用? 'SQL Server'? 'MySQL'? 'Oracle'? 'DB2'? – 2013-02-08 12:50:33

回答

0

我建議使用更現代的JOIN風格;而不是列出多個talbes,並在WHERE中做所有事情。 基本上要實現你想要做的事情,你需要爲兩名員工執行JOIN。

SELECT l.LeadBudget, l.CompanyName, l.LeadTitle, l.Status, leadEmp.Name As OwnerName, createdEmp.Name As CreatedUser 
FROM Leads l 
    INNER JOIN Employee leadEmp ON(l.LeadOwner = leadEmp.EmployeeId) 
    INNER JOIN Employee createdEmp ON(l.CreatedUserId= createdEmp.EmployeeId) 
WHERE l.LeadId='2' 
+0

非常感謝大家幫我解決了這個問題 – sample 2013-02-08 12:55:44

+0

在這種情況下,如果通過選擇一個解決方案來解決問題,我將非常感激。 (我的答案。 – Viehzeug 2013-02-08 12:58:41

相關問題