여기 MS-SQL2012. 나는 데이터베이스에서 최신 환율을 얻는 임무를 맡았습니다. 조인을 수행하거나 창 함수를 사용하는 것과 같은 여러 가지 방법이 있다는 것을 알고 있지만 제대로 작동하려면 문제가있는 것 같습니다.최신 환율을 움켜 잡으십시오
원래의 작업은 아래에 표시되어 있습니다.
주어진 가장 최근의 가능한 환율 다음 필수 매개 변수를 반환쓰기 SQL 절차 :
소스 통화 [SRCCURRENCY]
대상 통화 [CURRENCY1]
날짜 [을 참고 문헌]
비율 [RATE1]
DCURRENCY 데이터베이스.
절차에서 시스템에서 삭제 된 요율이 포함되어서는 안되며 요율이 절차 매개 변수로 전달 된 날짜에없는 경우 해당 날짜 이전의 가장 최근 사용 가능 요율이 반환되어야합니다.
나는 조인과 윈도우 절차를 쓰려고 노력했지만, 실수로 끝났다. 다음은 아래에 표시됩니다.
내 이해를 돕기 위해 누군가가 어떤 방법으로이를 수행 할 수 있는지, 그리고 그 이유를 말할 수 있다면 좋을 것입니다.
SELECT
CURRENCY1
,SRCCURRENCY
,REFERENCEDATE
, RATE1
SELECT RANK()
OVER (PARTITION BY SRCCURRENCY ORDER BY CURRENCY1 DESC) AS N
FROM [DCURRENCY]
및 조인을 통해;
SELECT [CURRENCY1]
,[SRCCURRENCY]
,[REFERENCEDATE]
,[RATE1]
FROM [DCURRENCY]
INNER JOIN (SELECT [CURRENCY1], MAX(REFERENCEDATE) AS [REFERENCEDATE]
FROM SRCCURRENCY
ORDER BY REFERENCEDATE DESC
나는 최고 결과를 잡아서 전에 다른 DB를의에서이 작업을 수행했지만 여기 스키마의 부족은 나를 위해 훨씬 더 어려운 작업을하고 있습니다.