当我知道查询符合条件的记录时,我的查询中的play.http.filters [class java.lang.Class}] does not implement interface play.api.http.HttpFilters or interface play.http.HttpFilters.
返回#ERROR。我的查询如下:
IIF function
WHERE部分只是限制此查询以便在我知道的[tbl2]。[True Available Quantity]字段中的数据的记录上进行测试。
最终目标是返回tbl1中的所有项目并使用tbl2中的SELECT tbl1.ItemCode, IIf(IsNull([tbl2].[True Available Quantity]) Or
[tbl2].[True Available Quantity]="",[tbl1].[EvalInstock],[tbl2].[True
Available Quantity]) AS InStock
FROM tbl1 LEFT JOIN tbl2 ON tbl1.ItemCode = tbl2.[Item No#]
WHERE (((tbl1.ItemCode)="3003"));
值(如果存在),如果不存在,则使用来自tbl1的[True Available Quantity]
。我很感激任何建议!
答案 0 :(得分:0)
如果[真实可用数量]是数字并且EvalInstock是字符串并不重要,因为如果EvalInstock是一个字符串,则来自任一字段的返回将自动转换为字符串。我做了一个测试来证实。所以别的东西是错的。
如果[真实可用数量]是数字类型字段,则无法与空字符串进行比较,因此请删除该条件。
ItemCode是文本类型字段吗?如果没有,请删除引号。
如果你使用IsNull()也可以使用Nz():Nz([True Available Quantity], [EvalInstock]) AS InStock
查看http://allenbrowne.com/QueryPerfIssue.html
答案 1 :(得分:0)
您最有可能的问题是,VBA始终检查两个条件:
SELECT
tbl1.ItemCode,
Nz([tbl2].[True Available Quantity], [tbl1].[EvalInstock]) AS InStock
FROM
tbl1
LEFT JOIN
tbl2
ON tbl1.ItemCode = tbl2.[Item No#]
WHERE
tbl1.ItemCode = "3003";
因此,如果为Null,第二个条件也会返回无法比较的Null,然后 IIf 不知道该怎么做。
请尝试使用 Nz :
{{1}}