2014-01-14 119 views
1

我有每個季度的結束日期作爲表格的PK,我需要比較日期以查看計算中將使用哪個季度結束值。查找給定日期的一個季度的結束日期

表的樣子:

EndingDate  Value 
12/31/2012  $1,000 

例如,假定2013年3月,我需要回到2012年12月31日和使用日期檢索$ 1,000個值。

有沒有人知道在MS Access 2007中使用什麼來執行此操作?我試過了:

DATEADD(dd, -1, DATEADD(qq, DATEDIFF(qq, 0, DATEINQUESTION), 0)) 

該計算總是使用上一個結束季度的日期以及與該日期相關的值。

+1

我不明白爲什麼'12月31日/ 2012'應該是「3/1/2013」​​季度結束日期。你的意思是上一季度的結束日期? – HansUp

+0

那麼,在上述情況下 - 2013年3月31日還沒有到來,因此它不會有價值,所以(你是對的)我們使用上一季度的結束日期。 –

回答

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 
+0

感謝您的回覆,Gord!我從來沒有這樣做過。 –

0

我用這個解決方案,它爲我工作:

Format(DateAdd("s",-1,DateAdd("q",DateDiff("q","1/1/1950",Date()),"1/1/1900")),"Short Date") 

它的工作原理至今..

相關問題