2017-10-23 8 views
0

나는 유효한 날짜 (유효 날짜)를 포함하는 환율 테이블을 가지고 있습니다. 적절한 환율을 계산하기 위해이 정보를 인보이스 표에 결합하고 싶습니다. 문제는 "날짜 - 시간"필드가 다음 행의 "유효 날짜"인 환율 테이블에서 파생 된 날짜 범위를 가져야한다는 것입니다 (테이블을 날짜). 이 값을 파생시켜 나머지 단일 쿼리에 참여시킬 수 있어야합니다.진행 열기 가장자리에 대한 select 함수에서 여러 행의 날짜 범위 작성하기

진도가 시퀀스를 사용하는 "비즈니스 논리"를 사용하므로 Row_Number() 또는 Lag 및 Lead를 사용하는 일반적인 색인 방법은 여기에 적용되지 않습니다. 이 문제에 어떻게 접근해야할지 모르겠습니다.

도움이된다면 apprise ERP와 해당 스키마를 진행 개방 에지 데이터베이스에 사용하고 있습니다.

이 쿼리를 구성하는 방법에 대한 도움이나 조언이 필요하십니까?

답변

0

나는 당신의 테이블의 구조를 잘 모릅니다,하지만 난 당신이 이런 일을 할 수 이해하는 것과 : 여기

select pkInvoice, InvoiceAmount, ExchangeRate 
from Invoices i1 
left outer join 
    (select pkInvoice, max(EffectiveDate) as effDate 
    from Invoices i2 inner join ExchangeRates ex2 
    on i.InvoiceDate > ex.EffectiveDate 
    group by pkInvoice) rates on i1.pkInvoice = rates.pkInvoice 
left outer join ExchangeRates ex1 on rates.effDate = ex1.EffectiveDate 

을 기본적으로 최신 유효 날짜가 환율에 대한 유효 날짜를 가져 오기 인보이스 일자보다 빠르지 만 각 인보이스 행에 대해

다음 환율을 얻기 위해 환율 테이블에 해당 유효 날짜를 가입하고 인보이스 테이블에 해당 정보를 결합하십시오.

+0

고맙습니다! 그것은 나를 위해 일했다. – Stanisouce