-2

对于表 SalesRep_Info 中的每一行,我都有一个列 ManagerID。ManagerID 是为每个销售代表保存 ManagerID 的同一表的主键。所以我需要将 Manager 的 FirstName 作为新列。我想知道这是否是通过声明和设置在 sql server 2005 中执行此操作的正确方法?!

先感谢您!

declare @RepID int

set @RepID = (Select Manager from SalesRep_Info)

Select *, (Select FirstName from SalesRep_Info where RepID=@RepID) as ManagerFname from SalesRep_Info
4

2 回答 2

1

你想加入:

SELECT
    a.*,
    b.FirstName AS ManagerFirstName
FROM
    SalesRep_Info a
    LEFT JOIN SalesRep_Info b ON a.ManagerID = b.RepID
于 2012-04-26T19:44:12.663 回答
0
declare @RepID int //ok

set @RepID = (Select Manager from SalesRep_Info)   // error - it must have 1 value. you should use top 1.

*从 SalesRep_Info 中选择前 1 位经理*

这是什么意思Select top 1 Manager from SalesRep_Info

条款在哪里where?每个人的经理都是一样的吗?

最后 :

Select *, (Select FirstName from SalesRep_Info where RepID=@RepID) as ManagerFname from SalesRep_Info

这也会抛出错误。第二个参数也必须返回 1 个值。

于 2012-04-26T19:37:31.430 回答