【问题标题】:Closest value (MS Access)最接近的值(MS Access)
【发布时间】:2018-04-13 13:27:34
【问题描述】:

是否可以在 MS Access 数据库中获得相同 id 的最接近(较小)值? 它只需要一个表达式,但我不知道如何正确编写它。 应该是这样的:

ID     Value     Value2
1        10         0
2        5          0
1        20         10
1        50         20
2        15         5
...and so on..........

我曾尝试使用 Dlookup 和 Max 函数,但失败了。 感谢您的帮助。

【问题讨论】:

  • 你的预期输出???
  • @DineshDB 列“ID”和“值”已给出。试图通过公式获取“Value2”列中的值。
  • 我不知道你说的最接近是什么意思。戈登在下面的回答假设您的意思是“以前的”。但即使是以前的也没有很好的定义。结果集的顺序是什么?哪些字段用于确定“上一个”记录?
  • 您似乎想要相同 id 的先前值。您需要一列来指定表中行的顺序。 SQL 表表示 无序 集,因此列必须包含排序信息。
  • @EllieK , Gordon-Linoff... 好吧,如果我再添加一个名为“Number”的列,它将指定我的表的顺序。我怎样才能获得正确的价值?附:抱歉,我是 SQL 新手,所以无法应付这么简单的任务。

标签: sql database ms-access max formula


【解决方案1】:

您似乎想要 previous 值。除非您有一个指定顺序的列,否则无法执行此操作。如果是这样:

select t.*,
       (select top (1) t2.value
        from t as t2
        where t2.? < t.?
        order by t2.? desc
       ) as prev_value
from t;

? 用于指定排序的列。

【讨论】:

  • 不幸的是仍然无法处理这个......如果可能的话,你能告诉我一个使用我的参数的例子吗?我有一个名为“记录”的表,其中的列:“数字”-排序元素; “车”; “公里”——价值。并且需要新列“prev_KM”,它将显示特定“汽车”的“KM”值的一个较小记录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 2021-10-18
  • 1970-01-01
  • 2013-08-19
相关资源
最近更新 更多