我有一个employeebook表,其中包含员工ID和book id列(等等)。
Emp_id|Book_id|.......
还有另一个表HistoryBooks:
Book_id|description|.....
请注意,员工所拥有的所有图书都不一定是历史书籍。
我需要找出拥有最多历史书籍的10名员工 - 员工ID和他们拥有的历史书籍数量。
我正在使用SQL Server 2008.
感谢帮助
答案 0 :(得分:0)
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
答案 1 :(得分:0)
为此
使用分组依据select top 10 emp_id, count(book_id) as NoOfBookID from EmployeeBook group by emp_id