![](/img/trans.png)
[英]MS Access Query: Using Select Statement within a Switch function or IIF function
[英]Using Select statement within a IIF function
如果列中沒有“位”,我想獲取最后 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.