Office中国论坛/Access中国论坛

标题: 请教高手,求这个多条件查询怎么做? [打印本页]

作者: wushenren7    时间: 2012-7-7 15:03
标题: 请教高手,求这个多条件查询怎么做?
本帖最后由 wushenren7 于 2012-7-7 15:04 编辑

建立表1:
姓名          学历        基本工资          工资总额
王二          硕士         2000       
李三          本科         1800       
赵四    大专         1500       
周一          中专         1200       
马五          小学         1100       

想通过查询语句得到下表:
姓名         学历        基本工资         工资总额
王二         硕士        2000        2600
李三         本科        1800        2160
赵四         大专        1500        1650
周一         中专        1200        1200
马五         小学        1100        1100

也就是不同学历有不同的工资系数:硕士是1.3的系数   本科1.2   大专1.1   中专及以下是1

这样多条件判断并计算出来如何去做语句?是否要用到IIF?
作者: 咱家是猫    时间: 2012-7-7 21:01
可以用IIF,不会用的话请到帮助里查看IIF的帮助文档,但IIF有限制,不能镶套太多级,最多7级.估计你这个也够用了,但是写那么多级也够累的,为了方便简洁,你可以写一个Function
在一个公共模块中建一个Function,例如:
Public Function GetX(基本工资 AS Double,学历 AS String)AS Double
'这里我为了让你更明白,参数用了中文,Function名与参数名你自己改
Select Case 学历
Case "硕士"
  GetX=基本工资*1.3
Case "本科"
  GetX=基本工资*1.2
'...这里你自己补齐
End Select
End Function


'如果在查询中引用,直接用就行了,如:

Select 姓名,学历,基本工资,GetX(基本工资,学历) AS 工资总额 From 表名
作者: andymark    时间: 2012-7-7 23:46
建立一个系数表
学历    系数
硕士    1.3
本科    1.2
大专    1.1
中专    1
.......

建立查询
select 表1.姓名,表1.学历,表1.基本工资,表1.基本工资*系数  as 工资总额
from  表1 inner join  系数表  on  表1.学历=系数表.学历
作者: roych    时间: 2012-7-8 04:36
比较赞成andymark的做法,这样比较方便随时修改系数(如果公司政策有变的话)。




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