标题:求助贴,根据表内数据的条件,重新计算赋值
只看楼主
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
回复 20楼 x271942906
UPDATE TEMP SET 调整后=ICASE(temp.reason="0",TT.NN,temp.reason="1",0,班级平均数) ;
FROM (SELECT 班级,班级平均数*SUM(IIF(BETWEEN(reason,"0","1"),1,0)) /SUM(IIF(REASON="0",1,0)) NN FROM TEMP GROUP BY 班级,班级平均数) TT WHERE temp.班级=tt.班级
SELECT TEMP
browse


这个代码不能解决你的问题吗

坚守VFP最后的阵地
2016-05-13 13:18
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
有什么问题,一次说清楚,挤牙膏似的,真让人受不了

坚守VFP最后的阵地
2016-05-13 13:20
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
回复 20楼 x271942906
看不明白你后面的问题,想清楚,再发帖

坚守VFP最后的阵地
2016-05-13 13:26
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
楼主的意思:
如果reason="0",用计算后的数据填充 调整后 字段的内容
如果reason="1",用0填充 调整后 字段的内容
如果reason不属于上述情况,用 班级平均数 字段的值填充 调整后 字段的内容

SELECT 班级,Iif(SUM(IIF(REASON="0",1,0))=0,0,班级平均数*SUM(IIF(BETWEEN(reason,"0","1"),1,0)) /SUM(IIF(REASON="0",1,0))) NN FROM TEMP GROUP BY 班级,班级平均数 into cursor t1
UPDATE TEMP SET 调整后=ICASE(temp.reason="0",TT.NN,temp.reason="1",0,班级平均数) ;
FROM t1 TT WHERE temp.班级=tt.班级
SELECT TEMP
BROWSE



[此贴子已经被作者于2016-5-13 13:59编辑过]


坚守VFP最后的阵地
2016-05-13 13:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-464652-1-1.html




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

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