我有两个表,一个是设备表devno,有三个域分别是devno char primary; lacksum decimal;
lackrate decimal ; 另一个是交易记录表mx, 其中有日期域date date, 也有域devno char;lacksum decimal......我想让devno表中的所有devno的lacksum 替换为mx表中相应devno的某一段日期的lacksum之和
如何实现?
不知说清了没有?? 主要涉及遍历记录和两个表的操作
lackrate decimal ; 另一个是交易记录表mx, 其中有日期域date date, 也有域devno char;lacksum decimal......我想让devno表中的所有devno的lacksum 替换为mx表中相应devno的某一段日期的lacksum之和
如何实现?
不知说清了没有?? 主要涉及遍历记录和两个表的操作
set a.lacksum=b.lacksum
from devno a
join (select devno,sum(lacksum) as lacksum from mx group by devno) b
on a.devno=b.devno
set a.lacksum=b.lacksum
from devno a
join (select devno,sum(lacksum) as lacksum from mx where date between @d1 and @d2 group by devno) b
on a.devno=b.devno
set a.lacksum=b.lacksum
from devno a
join (select devno,sum(lacksum) as lacksum from mx group by devno) b
on a.devno=b.devno
这个大哥已经写的很清楚了,a就是你要更新的表 devno
b就是将你MX表要统计的某一段时间的内 lacksum 值的总和的记录当成一张新表
然后通过a.devno=b.devno关联起来
ERROR 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from devno a
join (select devno,sum(lacksum) as lacksum from mx group by devno)' at line 3