我有一个问题,我不确定解决它的最佳方法或处理它的最有效方法。我需要查询包含主管和员工的数据库,但我需要能够按照用户要求的数量级别进行查询。我的意思是,查询将包含两个主要参数,即原始员工和要搜索的级别。查询将首先查找向原始员工报告并返回这些员工列表的所有员工。这将是1级搜索。如果用户通过值2,那么我需要让所有员工报告给在第一个列表中选择的所有员工。如果用户传递值3,那么我不仅会获得第一级员工,而是第二级,但之后我会获得向第二次查询中列出的员工报告的所有员工。在我看来,我将不得不为这些查询中的每一个创建一个新表,然后最终将结果组合为一个表返回。这是正确的方法吗?如果是这样,创建然后清理这些表的最佳方法是什么?
正在搜索的表是一个非常简单的结构:
ID EmployeeId Supervisor
--- ---------- ----------
1 Harlow, Bill Foster, Sam
2 Foster, Sam Jenkins, Alex
3 Jenkins, Alex Wadley, Mike
第一个查询本身非常简单:
select Id from dbo.Employees where Supervisor = 'Foster, Sam'