意外令牌:SQL查询中的'小于'符号

问题描述 投票:0回答:1

我正在尝试在Excel宏中使用ADODB通过SQL查询从DB2表中提取数据。我遇到了由查询中的表达式引起的错误。相关代码如下-问题来自第一行的IIF语句。 (我正在处理的项目中的其他SQL查询已插入,没有任何问题。)

SQL_input = SQL_input & "SELECT DB2.TABLE1.CAT, DB2.TABLE1.BRD, DB2.TABLE1.ITEM, Sum(IIF(ITEM_ORD_Q-ITEM_RECV_Q < 0,0,ITEM_ORD_Q-ITEM_RECV_Q)) AS OO" & vbCrLf
SQL_input = SQL_input & "FROM DB2.TABLE2 INNER JOIN DB2.TABLE ON (DB2.TABLE2.ITEM = DB2.TABLE1.ITEM) AND (DB2.TABLE2.BRD = DB2.TABLE1.BRD) AND (DB2.TABLE2.CAT = DB2.TABLE1.CAT)" & vbCrLf
SQL_input = SQL_input & "WHERE (((DB2.TABLE2.ITEM_GRP_CAT)=" & cat & ") AND ((DB2.TABLE2.ITEM_GRP_code_C)='" & code & "'))" & vbCrLf
SQL_input = SQL_input & "GROUP BY DB2.TABLE1.CAT, DB2.TABLE1.BRD, DB2.TABLE1.ITEM;"

AdoRS1.Open (SQL_input)

我得到的错误是:SQL0104N在“”]之后发现了意外的标记“

有人知道如何更改查询的字符串以使其起作用吗?

谢谢!

我正在尝试在Excel宏中使用ADODB通过SQL查询从DB2表中提取数据。我遇到了由查询中的表达式引起的错误。下面是相关的代码-问题是...

sql excel vba db2 adodb
1个回答
0
投票

AFAIK-DB2不支持IIF,这是MS Access和SQL Server(2012+)方法。考虑与CASE对应的ANSI SQL,几乎在所有SQL方言中都可用:

© www.soinside.com 2019 - 2024. All rights reserved.