我正在尝试在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表中提取数据。我遇到了由查询中的表达式引起的错误。下面是相关的代码-问题是...
AFAIK-DB2不支持IIF
,这是MS Access和SQL Server(2012+)方法。考虑与CASE
对应的ANSI SQL,几乎在所有SQL方言中都可用: