设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 我做的一个查询为什么总出错

[复制链接]
跳转到指定楼层
1#
发表于 2007-1-5 23:36:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
update 表1 set 表1.字段1=表1.字段2+表1.字段3-表1.字段4;

看起来可以,但当字段2,字段3,字段4中有为空的情况下,得出的字段1也会为空,我想把字段为空的做0处理,仅在这个更改查询中,并不改变它表中的值,于是作了如下更改:

update 表1 set 表1.字段1=表1.字段2+表1.字段3-表1.字段4 where(select iif(表1.字段2=0,"",表1.字段2)as 字段2,iif(表1.字段3=0,"",表1.字段3)as 字段3,iif(表1.字段4=0,"",表1.字段4)as 字段4 from 表1);

但是又出错了,如下:

所编写的一个子查询可在不在主查询的from子句中使用的exists保留字的情况下返回多个字段,修改子查询的select语句以只要求返回一个字段。

难道在update中不能这样适用iif语句?空不能参加运算吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
6#
发表于 2007-1-6 00:40:00 | 只看该作者
将无效值转换成零值函数,具体看帮助。
5#
 楼主| 发表于 2007-1-6 00:33:00 | 只看该作者
nz是个什么函数?

还有那些常用的函数?在哪里能找到比较全的?太渴望了!

十分感谢大家的帮助![em07]
4#
发表于 2007-1-6 00:21:00 | 只看该作者
供参考:

UPDATE 表1 SET 表1.字段1 = IIf(nz([表1]![字段2])+nz([表1]![字段3])-nz([表1]![字段4])=0,"0",nz([表1]![字段2])+nz([表1]![字段3])-nz([表1]![字段4]));


尽管给了参考,但这不是最佳方案,是强扭的瓜。表中有空值字段,说明该字段是多余的,它的存在与否影响不了记录的正确性;也不会与其它记录分不清。
3#
发表于 2007-1-6 00:06:00 | 只看该作者
子查询的select语句只要求返回一个字段
可以用nz函数解决:update 表1 set 表1.字段1=nz(表1.字段2,0)+nz(表1.字段3,0)-nz(表1.字段4,0);

2#
 楼主| 发表于 2007-1-5 23:39:00 | 只看该作者
谁能总结总结access的update set的多种用法?在网上搜了很长时间可只有一些简单的基本的用法,我总弄不好这几个查询和修改。真是菜呀![em06]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 16:46 , Processed in 0.107976 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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