Sql选择查询选择查询结果

时间:2018-02-05 11:36:15

标签: sql-server performance

我正在尝试(选择)查询同一个表中的上一个(选择)查询。

我在下面尝试了这个;

CREATE PROCEDURE dbo.strprcReturnEmpDetails(@EmpID VARCHAR(25))
AS
     SELECT [Name],
            Role,
            Email,
            Department,
            ReportingAuthority,
            DomainID,
            ReportsTo,
     (
         SELECT DISTINCT
                EmpID
         FROM Login
         WHERE [Name] = ReportsTo
     ) AS approverEmpid
     FROM Login
     WHERE EmpID = 288;
     SET NOCOUNT ON;
     RETURN;

1 个答案:

答案 0 :(得分:1)

我相信你会错过子查询中的别名以使其工作。您的子查询返回多个值,您需要将其作为依赖子查询,如下所示:

SELECT [Name], Role, Email, Department, ReportingAuthority,DomainID,ReportsTo,
  ( 
    select distinct EmpID 
    from Login l2
    where l2.Name = l1.ReportsTo
  ) as approverEmpid 
FROM Login l1
WHERE EmpID=288

如果Name表中的Login是唯一的,那么这应该有用。