设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 请教这个查询的出错原因!

[复制链接]
跳转到指定楼层
1#
发表于 2009-7-28 16:59:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有如下查询:
SELECT 客户.单位名称, [送货单号] & [打印ID] AS 送货号, 送货单.日期, IIf(Val(产品.客户ID)="4" Or Val(产品.客户ID)="52",Left(产品.产品代码,4) & " " & 产品.产品名称,产品.产品名称) AS 品名, Sum(送货单明细.数量) AS 送货数量, Format((select top 1 单价 from 产品单价 where 产品ID=送货单明细.产品ID And 启用时间<送货单.日期 order by 启用时间 desc),'¥0.000') AS 对应单价, 送货单明细.产品ID, 产品.单位, Format(Format((select top 1 单价 from 产品单价 where 产品ID=送货单明细.产品ID And 启用时间<送货单.日期 order by 启用时间 desc),'¥0.000')*Sum([数量]),'¥0.00') AS 小计
FROM 客户 RIGHT JOIN (产品 RIGHT JOIN (送货单 LEFT JOIN 送货单明细 ON 送货单.送货ID = 送货单明细.送货ID) ON 产品.产品ID = 送货单明细.产品ID) ON 客户.客户ID = 送货单.客户ID
GROUP BY 客户.单位名称, [送货单号] & [打印ID], 送货单.日期, IIf(Val(产品.客户ID)="4" Or Val(产品.客户ID)="52",Left(产品.产品代码,4) & " " & 产品.产品名称,产品.产品名称), 送货单明细.产品ID, 产品.单位, 送货单.客户ID
HAVING (((送货单.日期) Between [Forms]![对帐统计]![dd1] And [Forms]![对帐统计]![dd2]) AND ((送货单.客户ID)=[Forms]![对帐统计]![List2]))
ORDER BY 送货单.日期;

问题:当产品单价全部不为0时可以正常运行,当产品单价中有为0的记录时就会出以下错误:
[该表达式输入错误,或太复杂以致不能估值。例如:一个数值表达式中可能含有太多复杂元素。试着将表达式的一部份赋值到变量来将表达式简化。]

请问以上查询该如何简化呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-7-28 17:16:09 | 只看该作者
要想解决问题,把实例库传上来
3#
发表于 2009-7-29 14:48:30 | 只看该作者
用nz函数试试:
Format(nz((select top 1 单价 from 产品单价 where 产品ID=送货单明细.产品ID And 启用时间<送货单.日期 order by 启用时间 desc),0),'¥0.000') AS 对应单价
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 18:24 , Processed in 0.102752 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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