我有一个employeebook 表,其中包含员工id 和book id 列(等等)。
Emp_id|Book_id|.......
还有另一个表 HistoryBooks:
Book_id|description|.....
请注意,并非员工拥有的所有书籍都一定是历史书籍。
我需要找出拥有最多历史书籍数量的 10 名员工 - 员工 ID 和他们拥有的历史书籍数量。
我正在使用 SQL Server 2008。
感谢帮助
我有一个employeebook 表,其中包含员工id 和book id 列(等等)。
Emp_id|Book_id|.......
还有另一个表 HistoryBooks:
Book_id|description|.....
请注意,并非员工拥有的所有书籍都一定是历史书籍。
我需要找出拥有最多历史书籍数量的 10 名员工 - 员工 ID 和他们拥有的历史书籍数量。
我正在使用 SQL Server 2008。
感谢帮助
select top 10 emp_id,count(distinct book_id)
from employeebook
where isnull(book_id,0)<>0
group by emp_id
更新查询
select top 10 e.emp_id,count(distinct b.book_id)
from employeebook e
inner join HistoryBooks b on e.book_id=b.book_id
group by emp_id
为此使用Group By
select top 10 emp_id, count(book_id) as NoOfBookID from EmployeeBook group by emp_id