2016-11-04 4 views
0

일일 투자 수익을 계산하는 쿼리를 만들고 싶습니다. 공식은 다음과 같습니다액세스 쿼리 - 과거의 날짜와 연결된 데이터를 사용하는 쿼리는 어떻게 작성합니까?

TotalMV Date 
100  11/01/2016 
110  11/02/2016 
132  11/03/2016 

내가 원하는 : 나는 사투를 벌인거야

Market Value at date t/Market Value at date t - 1 

내 현재 TotalMarketValue 테이블은 다음과 같습니다 1. 날짜 t 마이너스의 시장 가치를 잡아에 대한 액세스를 확인하는 방법입니다 132를 110으로 나누어 11 월 3 일에 20 %의 일일 수익을 산출하는 새 쿼리를 만듭니다. 2011 년 11 월 2 일에 110/100 = 10 %입니다.

출력은 다음과 같습니다.

DailyReturn  Date 
10%    11/02/2016 
20%    11/03/2016 

과거의 시장 가치를 분모로 사용하도록 Access에 알리는 방법을 모르겠습니다.

도움이 될 것입니다.

감사합니다.

도움 주셔서 감사합니다. @Fionnuala. 나는 내 문제를보고 있었고 나는 내가 필요한 것을 단순화 할 것이라고 생각한다. 일일 수익을 계산하는 대신, 단순히 쿼리를 통해 전날의 시장 가치를 표시하기 만하면됩니다.

TotalMV   Date    PrevMV 
100    11/01/16 
110    11/02/16   100 
132    11/03/16   110 

다음은에 문제 [날짜 마이너스 1] 내가 어떤 시장 가치 날짜가 늘 때, 주말/공휴일에 예측이 : 그래서 지금 찾고 있어요 출력은 다음과 같을 것이다.

간단한 방법이 있나요?

답변

0

다음은 몇 가지 메모입니다. 양식을 사용하여 날짜를 입력해야합니다. 이것은 매우 거친 것입니다 :

SELECT t.totalmv, 
     t.adate, 
     (SELECT TOP 1 adate 
     FROM table2 
     WHERE adate < [enter date] 
     ORDER BY adate DESC)      AS [t minus 1], 
     (SELECT TOP 1 totalmv 
     FROM table2 b 
     WHERE adate < [enter date] 
     ORDER BY adate DESC)      AS [mv minus 1], 
     Format([totalmv]/[mv minus 1], "percent") AS division 
FROM table2 t 
WHERE (((t.adate) = [enter date])); 
0

도움말 @ Fionnuala. 관심있는 사람을 위해 편집 한 질문의 해결책은 다음과 같습니다.

SELECT TotalMarketValue.SettlementDate, TotalMarketValue.TotalMV, 
(SELECT Top 1 Temp.TotalMV FROM TotalMarketValue AS Temp 
WHERE Temp.SettlementDate<TotalMarketValue.SettlementDate 
ORDER BY Temp.SettlementDate DESC) AS PreviousTotalMV 
FROM TotalMarketValue; 
관련 문제