| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 527 人关注过本帖
标题:我也问问UPDATE的问题,多表更新
取消只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
结帖率:98.98%
收藏
已结贴  问题点数:10 回复次数:3 
我也问问UPDATE的问题,多表更新
select sum(金额) AS 汇总 FROM A2 GROUP BU 编号 INTO TABLE HZ
select 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条记录。。
搜索更多相关主题的帖子: 记录 
2015-03-25 17:02
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
没装,,,
2015-03-25 17:20
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
哈哈,问题在哪里啊
2015-03-25 19:43
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
谢谢。
我以前是分2步的,但不知道那里出了问题。
刚开始,我只是要汇总的,
select sum(金额) AS 汇总 FROM TMP_SDB GROUP BU 编号 INTO TABLE HZ
SELECT TMP_SDB
*GO TOP  &&我没这条,是不是没这个的问题?
DO WHILE !EOF()
UPDATE TMP_SDB SET TMP_SDB.汇总=HZ.汇总 WHERE TMP_SDB.编号=HZ.编号
SKIP
ENDDO
这样是可以更新整个TMP_SDB的。
但后来,我也要单独,汇总欠款,也就是说,不要把当前月份算进去。
我就在做1个汇总,
select sum(金额) AS 汇总 FROM TMP_SDB WHERE 日期 <>TODAY GROUP BU 编号 INTO TABLE QK
然后,我在一起更新。就是把上面的更新,写成下面。
DO WHILE !EOF()
UPDATE TMP_SDB SET TMP_SDB.汇总=HZ.汇总 WHERE TMP_SDB.编号=HZ.编号
UPDATE TMP_SDB SET TMP_SDB.欠款=QK.欠款 WHERE TMP_SDB.编号=QK.编号
SKIP
ENDDO
但我发现,我TMP_SDB的数据,只更新了1个汇总,而欠款,就是全部更新了。

后来,才出现这个,我看看能不能一起更新,好像不行
SELECT HZ.汇总,QK.欠款,A1.编号 FROM HZ,QK,A1 WHERE A1.编号=HZ.编号 AND A1.编号=QK.编号  ORDER BY 编号 INTO TABLE A3

再后来,我才问,
select sum(金额) AS 汇总 FROM TMP_SDB GROUP BU 编号 INTO TABLE HZ
select sum(金额) AS 汇总 FROM TMP_SDB WHERE 日期 <>TODAY GROUP BU 编号 INTO TABLE QK
SELECT HZ.汇总,QK.欠款,TMP_SDB.编号 FROM HZ,QK,A1 WHERE TMP_SDB.编号=HZ.编号 AND TMP_SDB.编号=QK.编号  ORDER BY 编号 INTO TABLE A3
这个3个语句,能不能合成1条,不在这里问的。
2015-03-26 17:00
快速回复:我也问问UPDATE的问题,多表更新
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016939 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved