SQL 2005查询与动态表生成

时间:2014-10-13 11:48:07

标签: sql sql-server-2005

我有一个问题,我不确定解决它的最佳方法或处理它的最有效方法。我需要查询包含主管和员工的数据库,但我需要能够按照用户要求的数量级别进行查询。我的意思是,查询将包含两个主要参数,即原始员工和要搜索的级别。查询将首先查找向原始员工报告并返回这些员工列表的所有员工。这将是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'

0 个答案:

没有答案