从另一个表更新表

时间:2011-02-01 05:57:17

标签: sql-server-2005

每个项目我都有一些角色,经理就是其中之一。我需要用他们的经理名称获取项目。我创建了Temp Table填充项目详情。现在我正在尝试更新经理名称。我试过但没有运气< / p>

Update #ProjectTemp 
SET ManagerName= pu.FirstName +' '+pu.LastName
FROM Project_Role pr
Inner join PMuser pu on pr.Userid = pu.Userid
where pr.ProjectId in (Select Projectid from #ProjectTemp)and roleid = 11 and #ProjectTemp.projectid = pr.projectid

2 个答案:

答案 0 :(得分:2)

您的脚本似乎是正确的,WHERE子句中只有一个条件可能是多余的:

pr.ProjectId in (Select Projectid from #ProjectTemp)

但我不明白它应该影响结果。

roleid之前也没有表别名。哪一个表有这个列?如果它们不止一个,则在指定正确的别名之前,脚本将不会运行。

请添加更多详细信息并详细说明您的“没有运气”。

答案 1 :(得分:0)

您必须从以下位置选择您更新的表:

UPDATE #ProjectTemp 
SET ManagerName= pu.FirstName +' '+pu.LastName
FROM #ProjectTemp 
INNER JOIN Project_Role pr ON pr.ProjectId = #ProjectTemp.ProjectId
INNER JOIN PMuser pu ON pr.Userid = pu.Userid
WHERE roleid = 11