0

我的员工表

EMPLOYEEID, EMPLOYEENAME

我的 CallReportEmployee 表

ReportID, EMPLOYEEID

我的报告表

ReportID , ReportName

当我想得到的是我想显示所有员工姓名时,当那些没有选择 ReportID 1

1 个报告可以包含许多员工

我怎样才能这样的结果是我想列出所有 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它变成只显示彼得

我怎样才能实现我想要的格式?我不想重复名称

4

1 回答 1

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

参考

于 2014-01-16T01:11:32.770 回答