我在Windows 7上使用mysql 5.5.9 32位的家伙我的状况非常糟糕需要绝望的帮助 在我的程序中,我有临时表temp01 在我的数据库中,我有代理表,我的存储过程有IN Ico_id int作为参数 随着这个我没有temp01表中的cl列,请记下它。
update agent a
join (
select sum(ifnull(t_dr_amt,0)) - sum(ifnull(t_cr_amt,0)) as cl
from temp01
group by t_ac_id
) as tt
on a.co_id = tt.t_co_id
and a.agent_id = tt.t_ac_id
SET a.cl = tt.cl
where a.co_id = 1
AND lower(a.io) = 'y';
当我运行存储过程时,它会给出错误:'on cluase'中的未知列tt.t_co_id
答案 0 :(得分:1)
您的子查询只返回一列(cl
)。您将此子查询别名为tt
,因此没有tt.t_co_id
。如果这是temp01
中的列,您可以将其更改为:
select
sum(ifnull(t_dr_amt,0)) - sum(ifnull(t_cr_amt,0)) as cl,
t_co_id,
t_ac_id
from temp01
group by t_ac_id
这样您也可以选择t_co_id
列。我还添加了t_ac_id
列,因为接下来会出现错误。 ;)