0
我曾經有一個查詢做了一堆事情,其中一個是告訴我有關每個員工的工資增長情況。是否到期?它是否逾期?對一個人來說太早了?如果條件不起作用,MS訪問
查詢不停地問我輸入參數,並問這個問題removing "enter parameter value" in query MS access後,我打破了一個查詢成一束,每個查詢是建立在其他之前,該if條件的最後一個。 一切工作正是我希望它的方式,除了如果條件(即用於之前做工精細!)
這是我的,如果條件
Eligibility: IIf([MonthsSinceLastIncrease] < 24, IIf([MonthsSinceLastIncrease] >= 18
AND [LastOfRatings] <= 2, "OVERDUE", IIf([MonthsSinceLastIncrease] >= 15
AND [LastOfRatings] = 1, "OVERDUE", IIf([MonthsSinceLastIncrease] >= 9
AND [MonthsSinceLastIncrease] < 15
AND [LastOfRatings] = 1, "Eligible", IIf([MonthsSinceLastIncrease] >= 12
AND [MonthsSinceLastIncrease] < 18
AND [LastOfRatings] = 2, "Eligible", "ok")))), "OVERDUE")
的加薪規則如如下:
- 如果員工的等級是3,他得到的 24個月後增加了他的最後一個
- 如果員工的評級是2,他得到一個在12-18 個月
- 如果員工的評級是1,他得到一個在9-15個月
現在會發生什麼事,是爲一些員工,我只得到一個記錄,它是正確的,但對於一些員工,我得到兩個記錄,其中一個是正確的,另一個不是。現在不是48條記錄(我用來獲取當條件工作得很好),我得到58
這是整個查詢的代碼
SELECT IIf([MonthsSinceLastIncrease] < 24, IIf([MonthsSinceLastIncrease] >= 18
AND [LastOfRatings] <= 2, "OVERDUE", IIf([MonthsSinceLastIncrease] >= 15
AND [LastOfRatings] = 1, "OVERDUE", IIf([MonthsSinceLastIncrease] >= 9
AND [MonthsSinceLastIncrease] < 15
AND [LastOfRatings] = 1, "Eligible", IIf([MonthsSinceLastIncrease] >= 12
AND [MonthsSinceLastIncrease] < 18
AND [LastOfRatings] = 2, "Eligible", "ok")))), "OVERDUE") AS Eligibility
,MonthsSinceLastUpdateQ.LocalID
,MonthsSinceLastUpdateQ.LastOfRatings
,MonthsSinceLastUpdateQ.MaxOfDateOfUpdate
,MonthsSinceLastUpdateQ.MonthsSinceLastIncrease
FROM MonthsSinceLastUpdateQ
,DateOfUpdateQ
GROUP BY IIf([MonthsSinceLastIncrease] < 24, IIf([MonthsSinceLastIncrease] >= 18
AND [LastOfRatings] <= 2, "OVERDUE", IIf([MonthsSinceLastIncrease] >= 15
AND [LastOfRatings] = 1, "OVERDUE", IIf([MonthsSinceLastIncrease] >= 9
AND [MonthsSinceLastIncrease] < 15
AND [LastOfRatings] = 1, "Eligible", IIf([MonthsSinceLastIncrease] >= 12
AND [MonthsSinceLastIncrease] < 18
AND [LastOfRatings] = 2, "Eligible", "ok")))), "OVERDUE")
,MonthsSinceLastUpdateQ.LocalID
,MonthsSinceLastUpdateQ.LastOfRatings
,MonthsSinceLastUpdateQ.MaxOfDateOfUpdate
,MonthsSinceLastUpdateQ.MonthsSinceLastIncrease;
你的幫助深表感謝,請注意我幾乎不知道編碼,只是一直在學習MS Access,謝謝!
有多少行返回DateOfUpdateQ?這兩個查詢都沒有鏈接,這可能會導致記錄重複。 DateOfUpdateQ –
DateOfUpdateQ返回48.如何鏈接查詢? –
使用'JOIN'或只需拖放應在查詢構建器中連接的列。 –