计算不同记录的字段持续时间

时间:2019-01-20 11:51:05

标签: vba ms-access access-vba

我正在尝试在Access DB中创建一个计算字段,但是在制定最佳方法时遇到了麻烦。 该字段是“持续时间”,它必须是两个“ SecsLapsed”值之间的差。这些值均分配有一个“顺序”,即数据/观察到的事件的顺序,即1、2、3、4等。

第一个订单将始终为Secslapsed = 0(因为它是记录的开始) 以下记录需要根据秒数之间的差来计算持续时间,例如对于Order2,持续时间= Secslapsed(对于orde3)– Secslapsed(对于order2)。但是,等式中的阶次值必须相对于阶次记录即。订单10将计算订单11的秒数与订单10的秒数之间的差。 有任何想法吗?

1 个答案:

答案 0 :(得分:0)

给表Table1加上您提到的数字字段Duration,这将是您的查询:

Select
  Duration,
  Duration - Nz(
    (Select Top 1 Duration From Table1 As Sub Where Sub.Duration < Table1.Duration Order By duration Desc)
    ,0) As SecsLapsed
From Table1

如果您的表中还有一个Project之类的字段来分隔此类“持续时间包”,则可以使用以下方法:

Select
  Project, Duration,
  Duration - Nz(
    (Select Top 1 Duration From Table1 As Sub Where Sub.Project = Table1.Project And Sub.Duration < Table1.Duration Order By duration Desc)
    ,0) As SecsLapsed
From Table1
Order By Project, Duration