2012-07-26 204 views
0

我正在使用以下查询来更新列但无法更新。Mysql表列更新问题

update table1 
set month_0val = (select v1.sumvalue 
from (select r1.reg_id, sum(backbook.bal) as sumvalue 
from table2 backbook , table3 s , table4 r1 
where month(backbook.Date_AsOf) = month(s.MONTH_AS_OF - INTERVAL 12 MONTH) and year(backbook.Date_AsOf) = year(s.MONTH_AS_OF - INTERVAL 12 MONTH) and backbook.a_region_id = r1.region_code 
and r1.org_id = org_id and backbook.A_ProdType_Code != 25 and s.SC_ID = sc_id group by backbook.A_Region_ID) v1 
where v1.reg_id = table1.Region); 

即使内部查询返回结果。

请帮忙。

+0

是否有错误?它会更有帮助,如果它是.. – 2012-07-26 03:23:19

+0

没有没有任何错误......... – 2012-07-26 03:24:17

+0

欲了解更多信息table1是内存类型和其他人Innodb ... – 2012-07-26 03:28:38

回答

0
UPDATE table1, ( 
      select r1.reg_id, sum(backbook.bal) as sumvalue 
      from table2 backbook , table3 s , table4 r1 
      where month(backbook.Date_AsOf) = month(s.MONTH_AS_OF - INTERVAL 12 MONTH) 
       and year(backbook.Date_AsOf) = year(s.MONTH_AS_OF - INTERVAL 12 MONTH) 
       and backbook.a_region_id = r1.region_code 
       and r1.org_id = org_id 
       and backbook.A_ProdType_Code != 25 
       and s.SC_ID = sc_id 
      group by backbook.A_Region_ID 
      ) v1 
SET table1.month_0val = v1.sumvalue 
WHERE v1.reg_id = table1.Region;