1
我有一個數據庫與2表,我試圖建立一個簡單的查詢,以返回每個項目的最新成本。MS Access查詢只選擇最新日期
樣品:
ID,名稱,成本,生效日期
1 ... ...的Item1 5 ... 16年7月1日
2 ...項目1 ... 4 ... 16年6月1日
3 ... ...項目2 6 ... 16年8月1日
4 ...的Item1 ... 2 ... 9/1/16
應僅返回第3行(第2項)和第4項(第1項的最新)。
使用Access接口,我設法讓它工作,只要我根本不包含成本,並且我無法從沒有Access的GROUP BY
行中刪除成本。任何幫助表示讚賞!
SQL視圖:
SELECT Item.Item_ID, Item.Item_Name, Rate_Changes.Cost, Max(Rate_Changes.Effective_Date) As MaxOfEffective_Date
FROM Item INNER JOIN Rate_Changes ON Item.Item_ID = Rate_Changes.Item_ID
WHERE Item.Active=True
GROUP BY Item.Item_ID, Item.Active, Item.Item_Name,
Rate_Changes.Cost, Rate_Changes.Effective_Date
,從我有限的樣本數據的正常工作,謝謝!我非常肯定,對於一個給定的項目,永遠不應該有重複的生效日期 - 有什麼方法可以強制執行?我幾乎全新接入,所以我仍然在摸索命令。 – rgdhndho
@rgdhndho。 。 。如果'id'與日期一起增加,則可以使用'id'而不是'effective_date'。 –
ID是主鍵,所以它絕對是唯一的。我不太清楚你的意思,我想讓查詢顯示每個商品ID的最新價格(最大生效日期)。如何使用ID(Rate_Change表的主鍵)進行分組?我試過了你的另一個代碼,它最終發出一條警告,說查詢最多隻返回一個結果。我只是投擲
Order By rc.Item_ID
到最後,而且從我所知道的情況來看它工作正常。感謝您的建議! – rgdhndho