Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

成绩的前20%转化为A,前50%转化为B,前80%转化为C,后20%转化为D,自定义函数如何写

温暖的阳光  发表于:2013-05-26 21:00:35  
复制

求学生每科成绩的前20%转化为A,前50%转化为B,前80%转化为C,后20%转化为D,自定义函数如何写,谢谢!

 

Top
恐龙 发表于:2013-05-27 09:43:24
if me!成绩<="20%" then
me!排名="A"
end if
if me!成绩>"20%" and me!成绩<="50%" then
me!排名="B"
end if
if me!成绩>"50%" and me!成绩<="80%" then
me!排名="C"
end if
if me!成绩>"80%" then
me!排名="D"
end if

沧海桑田 发表于:2013-05-27 10:09:45
IIf([成绩]<20%,"A",(IIf([成绩]<50%,"B",(IIf([成绩]<80%,"C","D")))))

煮江品茶 发表于:2013-05-27 17:14:36
温暖的阳光 发表于:2013-05-27 19:44:35

姓名

语文

语文等级

数学

数学等级

张1

98

A

89

D

张2

97

A

90

D

张3

96

B

91

C

张4

95

B

92

C

张5

94

B

93

C

张6

93

C

94

B

张7

92

C

95

B

张8

91

C

96

B

张9

90

D

97

A

张10

89

D

98

A

想完成以上的效果,谢谢以上三位大侠热心帮助!

恐龙 发表于:2013-05-28 10:19:26
chinasa 发表于:2013-05-28 10:50:10

TB

 

附件以语文为例帮你解决了。

1.查询中A为前20%的结果,B为前50%,C为前80%,剩下的就是那最后的20%。

2.你可以建立个更新查询,把A/B/C的结果分别更新到TB1表中。但要注意更新的顺序要是A/B/C.最后把剩下的更新为“D”

3.其它科目你参照语文就OK了。

如果嫌用查询不漂亮,那你就把查询的SQL语句写到事件中。



chinasa 发表于:2013-05-28 11:02:27

点击下载此附件

 

 

刚才有点问题,现在你分别运行四个更新查询就可以了。实际使用中你可以自己想办法美化下。



蒋元根 发表于:2013-05-28 19:12:26

供参考:

SELECT 成绩.姓名, 成绩.语文, DCount("姓名","成绩","[语文]>" & [语文] & "")+1 AS 语文成绩排名, (DCount("姓名","成绩","[语
文]>" & [语文] & "")+1)/(DCount("姓名","成绩","[语文]")) AS 语文成绩排名百分比位置, 成绩.语文等级, Switch([语文成绩排名百分
比位置]<=0.2,'A',[语文成绩排名百分比位置]<=0.5,'B',[语文成绩排名百分比位置]<=0.8,'C',[语文成绩排名百分比位置]>0.8,'d') AS 语
文成绩等级, 成绩.数学, DCount("姓名","成绩","[数学]>" & [数学] & "")+1 AS 数学成绩排名, (DCount("姓名","成绩","[数学]>" & [数
学] & "")+1)/(DCount("姓名","成绩","[数学]")) AS 数学成绩排名百分比位置, 成绩.数学等级, Switch([数学成绩排名百分比位置]
<=0.2,'A',[数学成绩排名百分比位置]<=0.5,'B',[数学成绩排名百分比位置]<=0.8,'C',[数学成绩排名百分比位置]>0.8,'d') AS 数学成绩
等级
FROM 成绩;
点击下载此附件



麥田 发表于:2013-06-01 21:29:36


总记录:9篇  页次:1/1 9 1 :