Office中国论坛/Access中国论坛

标题: 关于更新查询的问题 [打印本页]

作者: canghe168    时间: 2008-1-21 21:49
标题: 关于更新查询的问题
请问各位大虾,我有个数据库,里面有张表,表中有"出生日期"这个字段,现在我要做个更新查询,条件是到当前时间已经满70岁的记录,查询出来后在这个表的另一个字段下赋一个固定值,这个怎么实现?注意是到当前时间满70岁的,因为每个月都有人满70岁!
请不吝赐教,谢谢了!
作者: sxgaobo    时间: 2008-1-22 10:09
把你的库传上来看看!
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 编辑 ]
作者: canghe168    时间: 2008-1-22 15:14
谢谢上面两位朋友,先回答斑竹的;我要做的事情其实就是在当前时间满70岁的人给他加30元钱,这个30元就放在和出生日期同一个表的字段中,所以必须要赋值;
sxgaobo,谢谢你给的公式,这样确实是不能计算出精确的年龄,我前面没说清楚,这个年龄不需要精确到天,只要精确到月就行了,比如说生日是1938-1-25, 那他到2008年一月就满70,就算当前时间是2008-1-1日,也算他满70,就给他加30元钱,我传个库上来,原来的库实在太大
作者: canghe168    时间: 2008-1-22 15:51
上传个附件,里面有个数据表,和我做的更新查询(可不对头)表是这样的

姓名   生日     满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
[attach]28154[/attach]
作者: sxgaobo    时间: 2008-1-22 16:29
不明白你的目的!!!
作者: canghe168    时间: 2008-1-22 16:32
怎么不明白呢?这个是关于这次加退休工资的,就是说以后到了70岁的人,就要给他加30元退休工资,就这个目的
作者: canghe168    时间: 2008-1-22 16:33
呵呵,你在的啊,我们接龙讨论下,呵呵
作者: sxgaobo    时间: 2008-1-22 17:55
那你直接用那更新查询就可以啊!干吗要输入参数啊?
作者: WDLRCZT    时间: 2008-1-22 23:13
看看这个查询语句能不能满足你的要求
UPDATE 数据表 SET 数据表.满70岁的加30元 = 30
WHERE (((((Year(Date())-Year([生日]))*12+Month(Date())-Month([生日]))/12)>=70));

[ 本帖最后由 WDLRCZT 于 2008-1-22 23:15 编辑 ]
作者: haemon    时间: 2008-1-22 23:18
但是这样的,会不会每次更新查询的时候,以前已经加过钱的又加一次呢?
作者: sxgaobo    时间: 2008-1-23 10:28
不会的,是=30,不是+30
作者: zhouyunliang    时间: 2008-1-23 12:03
已更改[attach]28177[/attach]
作者: canghe168    时间: 2008-1-23 15:29
按照10楼的方法问题已经解决,谢谢各位了
作者: canghe168    时间: 2008-1-23 15:33
哇,zhouyunliang改的更好,简单,明了,再次感谢
作者: jsf2008    时间: 2008-1-24 09:52
看不太懂!!!!!!!!!
作者: yori2007    时间: 2008-1-30 10:54
学习学习!!!!!!!!
作者: candy_tao    时间: 2008-1-30 13:53
发现它功能还是够我们用了
作者: ppyh    时间: 2008-4-7 15:39
标题: 学习
学习学习
作者: bingling26588    时间: 2008-4-22 16:50
不太懂




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