设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1923|回复: 3
打印 上一主题 下一主题

[查询] 请教高手,求这个多条件查询怎么做?

[复制链接]
跳转到指定楼层
1#
发表于 2012-7-7 15:03:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-7-7 21:01:44 | 只看该作者
可以用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 表名
3#
发表于 2012-7-7 23:46:54 | 只看该作者
建立一个系数表
学历    系数
硕士    1.3
本科    1.2
大专    1.1
中专    1
.......

建立查询
select 表1.姓名,表1.学历,表1.基本工资,表1.基本工资*系数  as 工资总额
from  表1 inner join  系数表  on  表1.学历=系数表.学历
4#
发表于 2012-7-8 04:36:17 | 只看该作者
比较赞成andymark的做法,这样比较方便随时修改系数(如果公司政策有变的话)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-10 20:03 , Processed in 0.104174 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表