Access交流中心

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

分级运算求和寻帮助

小一  发表于:2011-08-24 17:58:27  
复制

我做一个报表,想实现如下功能:当最后一名人数为1人时,所有得分值均为1;当最后一名人数为2人时,前面人数得分为1,最后一名得分为1/2;当最后一名人数为3人时,前面人数得分为1,最后一名人数得分为1/3,以此类推,如何实现!

 

点击下载此附件

 

Top
煮江品茶 发表于:2011-08-24 18:42:38
select *,iif(分数>dmin("分数","tbname"),1,1/dcount("*","tbname","分数=" & dmin("分数","tbname"))) as 得分值 from tbname

小一 发表于:2011-08-24 19:00:22

老师,代码放在查询中还是报表中,能帮我在附件中做下吗?



小一 发表于:2011-08-24 19:18:48
尝试着放在查询中,果然解决问题了,多谢老师了!

小一 发表于:2011-08-24 19:24:51

测试了一番,最后一名多人并列可以,但两人以上就不行了,老师,麻烦再看下



小一 发表于:2011-08-24 20:28:40
最后两名或三名并列5人以上就不行了,用IIF是否可以实现

小一 发表于:2011-08-24 22:05:54

经过试验,用:IIf([英名]<Max([英名]),1,IIf([英名]=Max([英名],39-Max([英名])+1)/(Count([学号])-Max([英名])+1))可以达到我的要求,但求和时

=Sum(IIf([英名]<Max([英名]),1,IIf([英名]=Max([英名]),(39-Max([英名])+1)/(Count([学号])-Max([英名])+1)))),提醒出错不能有合计函数,问题在哪,请教各位如何解决求和?



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