如何解决在IIF函数中使用Select语句
如果列中没有“位”,并且如果有“位”,我想获取最后20条记录,我想获取记录后的记录。在我的示例中,“评论”列中为“干船坞”字符串。 那就是我的SQL:
SELECT TOP 20
[Date],[Lift ID]
FROM [Input Data$]
WHERE [Vessel name]='" + shipName + "'
AND [Lift ID] >= Iif(
(
SELECT max([Lift ID])
FROM [Input Data$]
WHERE [Vessel name]='" + shipName + "'
AND [Comments] LIKE '%dry dock%'
) >=1;
(
SELECT max([Lift ID])
FROM [Input Data$]
WHERE [Vessel name]='" + shipName + "'
AND [Comments] LIKE '%dry dock%'
);
1
)
ORDER BY [Date] DESC
我收到VBA运行时'-2147217900(80040e14)'错误消息“查询表达式中出现[[Microsoft] [ODBC Excel驱动程序]语法错误...”
为什么会出现此错误?
解决方法
使嵌套查询成为单独的查询LikeDryDock
SELECT max([Lift ID])
FROM [Input Data$]
WHERE [Vessel name]='" + shipName + "'
AND [Comments] LIKE '%dry dock%'
然后在另一个内部调用该查询
SELECT TOP 20
[Date],[Lift ID]
FROM [Input Data$]
WHERE [Vessel name]='" + shipName + "'
AND [Lift ID] >= Iif(
LikeDryDock >= 1,LikeDryDock,1
)
ORDER BY [Date] DESC
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。