|
有如下查询:
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的记录时就会出以下错误:
[该表达式输入错误,或太复杂以致不能估值。例如:一个数值表达式中可能含有太多复杂元素。试着将表达式的一部份赋值到变量来将表达式简化。]
请问以上查询该如何简化呢? |
|