Ms-Access
匯總 2 個表的 MS Access 查詢不會產生預期的輸出
我無法在 MS Access 2016 中成功創建一個查詢,該查詢正確地匯總了 2 個具有相似但不完全相同欄位的表中的數據。
我有一個水果市場。我每季買一次每種水果。我每個季節都會多次處理壞水果。我分別跟踪壞果的購買和處置。
我希望創建一個查詢來總結每年和水果的淨水果量(購買 - 壞)。
購買水果表:
ID CYear Fruit Purchased 3 2017 Apple 50 4 2018 Apple 30 5 2017 Pear 50 6 2018 Pear 60
壞果表
ID CYear CMonth Fruit Bad 2 2017 11 Apple 3 3 2017 12 Apple 20 4 2017 8 Pear 15 5 2018 2 Apple 10
這是我想要的查詢輸出:
ID CYear Fruit Purchased Bad Net 1 2017 Apple 50 23 27 2 2017 Pear 50 15 35 3 2018 Apple 30 10 20 4 2018 Pear 60 0 60
“Net”欄位是根據“Purchased - Bad”計算得出的。
我無法創建與所需輸出匹配的查詢或聯合。最令人費解的是,因為2018年沒有“0”壞梨的記錄,查詢甚至沒有選擇2018年梨的採購。
創建計算每年壞果數量的查詢並將其保存並分配名稱
$$ Bad Fruit Year $$:
SELECT CYear, Fruit, SUM(Bad) AS Bad FROM [Bad Fruit] GROUP BY CYear, Fruit;
然後創建查詢獲取您需要的數據:
SELECT p.ID, p.CYear, p.Fruit, p.Purchased, NZ(b.Bad,0) AS Bad, (p.Purchased-NZ(b.Bad,0)) AS Net FROM [Purchased Fruit] As p LEFT JOIN [Bad Fruit Year] As b ON p.CYear=b.CYear AND p.Fruit=b.Fruit;
結果,您將有 2 個查詢(要清除數據庫視窗的查詢選項卡,您可以隱藏第一個查詢)。第二個給出你需要的結果,它會在打開時自動呼叫第一個(你不需要呼叫/打開它)。
如果您願意,您可以將這些查詢合併為一個:
SELECT p.ID, p.CYear, p.Fruit, p.Purchased, NZ(b.Bad,0) AS Bad, (p.Purchased-NZ(b.Bad,0)) AS Net FROM [Purchased Fruit] As p LEFT JOIN ( SELECT CYear, Fruit, SUM(Bad) AS Bad FROM [Bad Fruit] GROUP BY CYear, Fruit) AS b ON p.CYear=b.CYear AND p.Fruit=b.Fruit;
但是,如果您在創建和儲存後打開它進行查看/編輯,它的文本可能會被 MS Access 損壞(問題是舊的並且仍然無法修復)。
PS。我認為沒有水果存在的情況
$$ Bad Fruit $$一年的表,而缺席$$ Purchased Fruit $$同年。