我在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