我在MS Access中擁有下表。選擇最接近給定值的兩行
Day ABC
365 25
548 35
730 37
913 58
1095 146
我想查詢它這樣,我之前和列日的給定值後得到的行。這個值是可變的,可以是例如value = 432 對於此示例,查詢將生成下表。
Day ABC
365 25
548 35
因爲給定值= 432比548的
日值我能夠做到的就是讓一個場超過365天值較大和較小的,但不是兩個。以下查詢爲我提供了Day字段的正確行。
Select Max(Day) As Day From Table Where Day < 432
UNION
Select Min(Day) As Day From Table Where Day > 432
當我使用此代碼並添加另一個字段,如ABC我得到一個錯誤。
您試圖執行一個查詢,該查詢不包含指定的 表達式'ABC'作爲聚合函數的一部分。
你能幫幫我嗎?我認爲這應該是一個非常簡單的任務。謝謝!
嗨,謝謝你的答案!但是,這總是會給我表格的第一行(不管值)和其他行。對於745的值,我想獲得730和913行,而不是365和其他行 – jonas778
你絕對正確 - 我的歉意。將'ORDER BY Day Desc'添加到第一個'SELECT'語句的末尾和'ORDER BY Day Asc'到第二個語句的末尾。另外,如果你選擇一個確切的值;說913它會返回一個值,因爲'UNION'自動刪除重複項,返回兩行(這兩個都是相同的)使用'UNION ALL'。我會更新我的答案以顯示Asc和Desc排序。 –
該錯誤與單詞Table沒有任何關係,我只是用它來說明這個例子。實際的表格命名不同 – jonas778