繁体   English   中英

具有计算表达式的子查询的条件表达式中的数据类型不匹配

[英]Data type mismatch in criteria expression for the subquery with calculated expression

我正在尝试在MS Access中创建一个SQL子查询。 在表达式中获取“类型不匹配”
条件”错误消息。

子查询为

SELECT *
  (SELECT Locs_Eq.Locs_Eq 
   FROM Locs_Eq 
   WHERE Query6.StDeExtrREF=CStr(Locs_Eq.Full_VendSN)
  ) AS Loc_1
FROM Query6

可变DeExtrREFQuery6如下:

 IIF(PDetail.VeName="Siem" AND [DeExtr1]="Contr REF#",
     TRIM(MID (PDetail.Desc, (InStr([PDetail.Desc],":")+1), LEN(PDetail.Desc))),
     TRIM(MID (PDetail.Desc, (InStr([PDetail.Desc],":")+1), LEN(PDetail.Desc))) 
    ) AS DeExtrREF

我尝试将CS​​tr添加到变量中,但仍然收到错误消息。 请帮忙。

我假设您在第一行的SELECT *之后有一个逗号。 如果不是,请先更改此设置,看看是否有帮助。

我不确定,但这可能是与null相关的错误; 将此添加到您的访问应用程序中的模块:

public function is_null(val as variant, rplc as string) as string
    if isnull(val) then
        is_null = rplc
    else
        is_null = cstr(val)
    end if
end function

然后更改您的查询以使用它,如下所示:

SELECT q.*,
  (SELECT l.Locs_Eq 
   FROM Locs_Eq l 
   WHERE is_null(q.StDeExtrREF, "") = CStr(is_null(l.Full_VendSN, ""))
  ) AS Loc_1
FROM Query6 q

希望这可以帮助。 我会自动为表和查询加上别名,但是通常来说,如果您的查询不太难理解,您很可能会在这里获得帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM