我将每个季度的结束日期作为表格的PK,我需要比较日期以查看计算中将使用哪个季度结束值。
表格如下:
EndingDate Value
12/31/2012 $1,000
例如,鉴于2013年3月1日,我需要返回12/31/2012并使用该日期来检索$ 1,000值。
有谁知道在MS Access 2007中使用什么来执行此操作?我试过了:
DATEADD(dd, -1, DATEADD(qq, DATEDIFF(qq, 0, DATEINQUESTION), 0))
计算始终使用上一个结束季度的日期以及与该日期相关联的值。
答案 0 :(得分:2)
一种方法是使用DMax()
和DLookup()
的组合。对于名为[EndingBalances]
EndingDate Value
---------- -----
2012-09-30 900
2012-12-31 1000
2013-03-31 1100
2013-06-30 1200
2013-09-30 1300
2013-12-31 1400
表达式
DMax("EndingDate","EndingBalances","EndingDate<#2013-03-01#")
会返回日期
2012-12-31
因此表达式
DLookup("Value","EndingBalances","EndingDate=#" & Format(DMax("EndingDate","EndingBalances","EndingDate<#2013-03-01#"), "yyyy-mm-dd") & "#")
会返回值
1000
答案 1 :(得分:0)
我使用了这个解决方案,它对我有用:
Format(DateAdd("s",-1,DateAdd("q",DateDiff("q","1/1/1950",Date()),"1/1/1900")),"Short Date")
到目前为止......