按照这篇文章的回答,我有这样的事情:
update MyTable
set column1 = otherTable.SomeColumn,
column2 = otherTable.SomeOtherColumn
from MyTable
inner join
(select *some complex query here*) as otherTable
on MyTable.key_field = otherTable.key_field;
但是,我不断收到此错误:
列前缀“otherTable”与查询中使用的表名或别名不匹配。
我不确定出了什么问题。我不能从这样的选择查询中进行这样的更新吗?任何帮助将不胜感激。
(我正在使用 *blush* sql server 2000。)
编辑:
这是实际的查询
update pdx_projects set pr_rpc_slr_amount_year_to_date = summary.SumSLR, pr_rpc_hours_year_to_date = summary.SumHours
from pdx_projects pr join (
select pr.pr_pk pr_pk, sum(tc.stc_slr_amount) SumSLR, sum(tc.stc_worked_hours) SumHours from pdx_time_and_cost_from_rpc tc
join pdx_rpc_projects sp on tc.stc_rpc_project_id = sp.sol_rpc_number
join pdx_rpc_links sl on sl.sol_fk = sp.sol_pk
join pdx_projects pr on pr_pk = sl.pr_fk
where tc.stc_time_card_year = year(getdate())
group by pr_pk
) as summary
on pr.pr_pk = summary.pr_pk
实际的错误信息是
服务器:消息 107,级别 16,状态 2,第 1 行列前缀“摘要”与查询中使用的表名或别名不匹配。