我已經嘗試了很長一段時間來修復以下代碼中缺少的運算子錯誤,該錯誤發生在我添加 INNER JOIN 之后。
任何幫助表示贊賞
Set qdf = CurrentDb.CreateQueryDef("", " SELECT PlantCode, PotSize, WeightToWatch, DateWatered, WeightAfter FROM ListWaterings " & _
" WHERE DateWatered = (SELECT MAX(T1.DateWatered) FROM ListWaterings AS T1 WHERE T1.PlantCode = ListWaterings.PlantCode) " & _
" INNER JOIN ListPlants ON ListPlants.PlantCode = ListWaterings.PlantCode "
我試圖完成的結果如下
名為 ListPlants 的表(簡化)
| 工廠代碼 | 鍋大小 | 重量觀察 |
|---|---|---|
| 18 | 15 | 1200 |
| 19 | 22 | 1450 |
一個名為 ListWaterings 的表
| 工廠代碼 | 日期澆水 | 重量后 |
|---|---|---|
| 18 | 23-03-2022 15:50 | 1250 |
| 19 | 23-03-2022 15:51 | 1500 |
| 18 | 23-03-2021 15:50 | 1300 |
| 19 | 23-03-2021 15:51 | 1550 |
我的查詢結果看起來像
| 工廠代碼 | 日期澆水 | 重量后 | 鍋大小 | 重量觀察 |
|---|---|---|---|---|
| 18 | 23-03-2022 15:50 | 1250 | 15 | 1200 |
| 19 | 23-03-2022 15:51 | 1500 | 22 | 1450 |
uj5u.com熱心網友回復:
T2 只是由回傳的標量值的別名
(SELECT MAX(T1.DateWatered) FROM ListWaterings AS T1 WHERE T1.PlantCode = ListWaterings.PlantCode)
您沒有在其他任何地方提及此內容,因此您真的不需要它,當然也不需要在您的 JOIN 的 ON 子句中。我認為這只是一個錯字。也許你想說的是
SELECT PlantCode,
DateWatered,
WeightAfter
FROM ListWaterings
WHERE DateWatered =
(SELECT MAX(T1.DateWatered)
FROM ListWaterings AS T1
WHERE T1.PlantCode = ListWaterings.PlantCode)
INNER JOIN ListPlants
ON ListPlants.PlantCode = ListWaterings.PlantCode
編輯我在 JOIN 之前放錯了 WHERE。并且 OP 在輸出中添加了更多欄位,所以這里應該是正確的語法:
SELECT ListPlants.PlantCode,
ListWaterings.[DateWatered],
ListWaterings.WeightAfter,
ListPlants.PotSize,
ListPlants.WeightToWatch
FROM ListPlants
INNER JOIN ListWaterings
ON ListPlants.PlantCode = ListWaterings.PlantCode
WHERE ListWaterings.[DateWatered]=
(SELECT MAX(T1.DateWatered)
FROM ListWaterings AS T1
WHERE T1.PlantCode = ListWaterings.PlantCode)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/451343.html
上一篇:當列包含撇號時,連接不起作用
