我也问问UPDATE的问题,多表更新
select sum(金额) AS 汇总 FROM A2 GROUP BU 编号 INTO TABLE HZselect sum(金额) AS 汇总 FROM WHERE 日期<>当前日期 A2 GROUP BU 编号 INTO TABLE QK
SELECT A1
DO WHILE !EOF()
UPDATE A1 SET A1.汇总=HZ.汇总 WHERE A1.编号=HZ.编号
UPDATE A1 SET A1.欠款=QK.欠款 WHERE A1.编号=QK.编号
SKIP
ENDDO
我是想把A2表进行2次汇总,
第1次是汇总所有编号的,也就是所用记录,
第2次是汇总,是排除当前日期的,也就是以前欠款的汇总,
然后更新到A1去。
用上面的来更新,问题来了。
A1的汇总字段,只更新了1条记录,但欠款字段,却是都更新了。。
不知道为什么。
后来,我把2个UPDATE合起来。
UPDATE A1 SET A1.汇总=HZ.汇总,A1.欠款=QK.欠款 WHERE A1.编号=HZ.编号 AND A1.编号=QK.编号
问题也是,A1只有1个记录更新了汇总,欠款,也是全部更新了。。。
不知道是什么问题。
但如果我单独只做
UPDATE A1 SET A1.汇总=HZ.汇总 WHERE A1.编号=HZ.编号
是可以全部更新的。
后来我就想,为什么不把2个汇总合在一起呢?
但我,不会,
目前,是先分开汇总 ,然后我在把2个合起来
SELECT HZ.汇总,QK.欠款,A1.编号 FROM HZ,QK,A1 WHERE A1.编号=HZ.编号 AND A1.编号=QK.编号 ORDER BY 编号 INTO TABLE A3
SELECT A1
DO WHILE !EOF()
UPDATE A1 SET A1.汇总=A3.汇总,A1.欠款=A3.欠款 WHERE A1.编号=A3.编号
SKIP
ENDDO
到现在,我还不清楚,为什么,刚开始的时候,只更新了1条记录。。