Office中国论坛/Access中国论坛

标题: IIF语句的使用 [打印本页]

作者: bshchangss    时间: 2012-2-23 18:42
标题: IIF语句的使用
我做了个查询,“Query audit”里面的IIF语句实现起来有问题,哪位高手能帮忙看看。
IIF语句需实现的功能:
当Result不为空时,该字段Grade为Result,否则就根据Score的值来判断,如Score大于89,则Grade为A,如Score大于79,则Grade为AB,如Score大于59,则Grade为C,如Score为空,则Grade为空。
我觉得我的IIF语句是对的啊,但实现起来有错误。


还有最好有高手能让IIF语句里的Score值能根据表Grade变化,这样以后即使改动数值只要在表里变动就可以了
作者: todaynew    时间: 2012-2-23 19:26
select *,iif(result="","",iif(result<=59,score,iif(result<=79,C,iif(result<=89,AB,A)))) as Grade from tbname
作者: bshchangss    时间: 2012-2-23 19:35
好象不对诶
作者: todaynew    时间: 2012-2-23 19:56
本帖最后由 todaynew 于 2012-2-23 19:58 编辑
bshchangss 发表于 2012-2-23 19:35
好象不对诶


呵呵,告诉你一个更为简单的做法。

先建立一个表(假设名为Sctb),该表两个字段为:result、Score。将这个表填好。以后在查询中引用即可:
select *,Dlookup("Score","Scrtb","result='" & nz(result,"") & "'") from tbname

该表的参数增减或数值调整,都只需要修改数据表,而不必去修改查询了。

以上处理方法为这类问题的常规做法,以后遇到类似问题就按这个思路解决即可。
作者: laiguiyou    时间: 2012-2-24 11:04
http://www.office-cn.net/thread-110537-1-1.html
这里面有大量的IIF示例
作者: roych    时间: 2012-2-24 11:47
Score字段应当改为数值型字段。
作者: wu8313    时间: 2012-3-9 13:21
改用 switch 函数 也是可以的。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3