如何获得我的SQL的以下结果?

时间:2013-06-21 08:44:06

标签: sql relationship unique-constraint query-by-example

我的员工表

EMPLOYEEID, EMPLOYEENAME

我的CallReportEmployee表

ReportID, EMPLOYEEID

我的报告表

ReportID , ReportName

当我想要获取时,我想显示所有员工姓名,当那些人没有选择ReportID 1时

1份报告可由许多员工组成

我怎么能得到这样的结果呢?我想列出所有具有ReportID的员工而不是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中加入,则只会显示为Peter

如何实现我想要的格式?我不想要重复名称

1 个答案:

答案 0 :(得分: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

<强>参考