问题描述
如果列中没有“位”,并且如果有“位”,我想获取最后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