设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2907|回复: 18
打印 上一主题 下一主题

[查询] 关于更新查询的问题

[复制链接]
跳转到指定楼层
1#
发表于 2008-1-21 21:49:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问各位大虾,我有个数据库,里面有张表,表中有"出生日期"这个字段,现在我要做个更新查询,条件是到当前时间已经满70岁的记录,查询出来后在这个表的另一个字段下赋一个固定值,这个怎么实现?注意是到当前时间满70岁的,因为每个月都有人满70岁!
请不吝赐教,谢谢了!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-1-22 10:09:47 | 只看该作者
把你的库传上来看看!
DateDiff("yyyy",[出生日期],Date())可以计算两日期间相差的年,
DateDiff("yyyy",[1978-1-22],Date())=30 可 DateDiff("yyyy",[1978-1-25],Date())也=30
怎么可以精确的计算年龄啊,就是说Date()-[1978-1-22]=30 而 Date()-[1978-1-25]=29

[ 本帖最后由 sxgaobo 于 2008-1-22 10:34 编辑 ]
3#
 楼主| 发表于 2008-1-22 15:14:52 | 只看该作者
谢谢上面两位朋友,先回答斑竹的;我要做的事情其实就是在当前时间满70岁的人给他加30元钱,这个30元就放在和出生日期同一个表的字段中,所以必须要赋值;
sxgaobo,谢谢你给的公式,这样确实是不能计算出精确的年龄,我前面没说清楚,这个年龄不需要精确到天,只要精确到月就行了,比如说生日是1938-1-25, 那他到2008年一月就满70,就算当前时间是2008-1-1日,也算他满70,就给他加30元钱,我传个库上来,原来的库实在太大
4#
 楼主| 发表于 2008-1-22 15:51:19 | 只看该作者
上传个附件,里面有个数据表,和我做的更新查询(可不对头)表是这样的

姓名   生日     满70岁的加30
张一   1938-1-15             0
张二   1938-2-5               0
张三   1938-3-25             0
张四   1938-4-1               0
李二   1942-5-5               0
执行更新查询后,要求输入参数,比如我输入2008-1-1,意思是要查询出2008-1月满70的人,给他30元,结果如下
姓名   生日     满70岁的加30
张一   1938-1-15            30
张二   1938-2-5               0
张三   1938-3-25             0
张四   1938-4-1               0
李二   1942-5-5               0

如果我再次执行查询,要求输入参数,比如我又输入2008-3-29,意思是到2008.3月已经满70的人,给他30元,结果如下:

姓名   生日     满70岁的加30
张一   1938-1-15            30
张二   1938-2-5               30
张三   1938-3-25             30
张四   1938-4-1               0
李二   1942-5-5               0

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2008-1-22 16:29:26 | 只看该作者
不明白你的目的!!!
6#
 楼主| 发表于 2008-1-22 16:32:08 | 只看该作者
怎么不明白呢?这个是关于这次加退休工资的,就是说以后到了70岁的人,就要给他加30元退休工资,就这个目的
7#
 楼主| 发表于 2008-1-22 16:33:11 | 只看该作者
呵呵,你在的啊,我们接龙讨论下,呵呵
8#
发表于 2008-1-22 17:55:54 | 只看该作者
那你直接用那更新查询就可以啊!干吗要输入参数啊?
9#
发表于 2008-1-22 23:13:51 | 只看该作者
看看这个查询语句能不能满足你的要求
UPDATE 数据表 SET 数据表.满70岁的加30元 = 30
WHERE (((((Year(Date())-Year([生日]))*12+Month(Date())-Month([生日]))/12)>=70));

[ 本帖最后由 WDLRCZT 于 2008-1-22 23:15 编辑 ]
10#
发表于 2008-1-22 23:18:41 | 只看该作者
但是这样的,会不会每次更新查询的时候,以前已经加过钱的又加一次呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 11:01 , Processed in 0.093925 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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