2013-06-21 17 views
0

我EMPLOYEE表如何獲得以下結果爲我的SQL?

EMPLOYEEID, EMPLOYEENAME 

我CallReportEmployee表

ReportID, EMPLOYEEID 

我的報告表

ReportID , ReportName 

當我想要得到的是我想告訴所有的員工姓名,當那些didnt選擇ReportID 1

1 report can由許多員工組成

我該如何得到這樣的結果是我想列出所有員工的ReportID爲1而不是1?

EMPLOYEENAME REPORTID 
Roger    1 
Peter    1 
Shawn    NULL 
Peter    NULL 

我試試這個,也沒有工作

SELECT rc.EmployeeID, rc.ReportID, e.FirstName 
FROM employee e 
LEFT JOIN callreportemployee rc ON e.ID = rc.EmployeeID 

它只是顯示所有員工

EMPLOYEENAME REPORTID 
Roger    Null 
Peter    1 
Peter    2 
Shawn    3 
Shawn    2 
John    NULL 

,如果我在一個where rc.ReportID = 1在其中加入成爲唯一

秀彼得

我該如何實現我想要的格式?我不想重複名稱

+1

如果我理解你的問題,你想要的值爲NULL和1?如果是這樣,只要在ON – Jaloopa

+0

中將WHERE子句更改爲一個額外的條件,我可以得到3和2的值嗎?我可以讓它們顯示爲NULL嗎? – Ryan

回答

0

我該如何實現我想要的格式?我不想重複名稱

使用GROUP BY子句聚集重名,作爲此查詢:

SELECT U.Id as [User Link], Count(Pt.Id) AS ANSWERS 
FROM Users U, Posts P, PostHistory Ph, PostTypes Pt 
WHERE 
Pt.Id = Ph.PostHistoryTypeId 
AND 
U.Id = P.OwnerUserId 
AND 
P.Id = Ph.PostId 
AND 
Pt.Id = 2 
GROUP BY U.Id 
HAVING Count(Pt.Id) > 2000 
ORDER BY ANSWERS DESC 

參考