我现在有个员工表employee 里面有要用的employeeID,employeeCode,employeeName,departmentID
还有一个函数Fa,传递departmentID,返回5列数据,其中一列是departmentID本身,其余4列是其他数据我现在想结合employee所有员工,把员工的部门ID传递到函数Fa查出每个人的共8列数据我现在想的建了临时表,先插入emplolyee表里面有的4列数据,然后循环每一条再去调用Fa,更新这个临时表的其他4列但是速度太慢了(目前员工有2万多条,后期会越来越多),希望高手帮忙~谢谢啦
还有一个函数Fa,传递departmentID,返回5列数据,其中一列是departmentID本身,其余4列是其他数据我现在想结合employee所有员工,把员工的部门ID传递到函数Fa查出每个人的共8列数据我现在想的建了临时表,先插入emplolyee表里面有的4列数据,然后循环每一条再去调用Fa,更新这个临时表的其他4列但是速度太慢了(目前员工有2万多条,后期会越来越多),希望高手帮忙~谢谢啦
--楼主为什么不用两表直接连?select * from employee e left join department d on e.departmentid = d.id
那个函数Fa不是表,他里面是根据部门ID先找不同的部门类型,然后去不同的表里面取数据,函数Fa涉及到了另外一个函数和至少4张表我觉得,select e.id,e.name,(select aa from Fa(e.id)) from employee e这样的语句应该合法的,但是会报错除了那个apply以外,还有没有别的方法可以直接取列做参数做个二次查询???
on a.id=e.id
谢谢回复~你这个当真不行,e.id在那个范围内是无法取到的
inner join ( Fa(e.departmentID) )a on e.departmentID=a.departmentID
inner join ( select Fa(e.departmentID) from (select * from employee)e )a on e.departmentID=a.departmentID
select a.employeeID,a.employeeCode,a.employeeName, c.* from employee a inner join (select * from (table)Fa(select departmentID from
employee) b) c on c.departmentID =a.departmentID
谢谢回复~不过我给@sql 的长度改为NVARCHAR(MAX) ,依然被截取了~