2014-11-11 6 views
0

Надеюсь, достаточно просто, но не можете найти ответ. Попытка запустить:SQL - Coalesce до следующей доступной даты

SQL Server

left outer join exchanges fx (nolock) on 
v1.ccy = fx.ccy and v1.date = fx.date 

Проблема заключается в том, что fx.ccy не может существовать на fx.date. Поэтому я хотел бы присоединиться к следующей доступной дате.

Большое спасибо,

Хосе

+1

Что вы подразумеваете под "следующей доступной датой"? –

+1

Какая база данных? Postgres? Oracle? SQLServer? – Christian

+3

Вы должны предоставить образцы данных, желаемые результаты и полный запрос. –

ответ

0

Возможное решение:

.... 
left outer join exchanges fx (nolock) on 
v1.ccy = fx.ccy and fx.date = (
    select min(date) from exchanges where date >= v1.date and ccy = v1.ccy) 
0
left outer join exchanges fx (nolock) on 
v1.ccy = fx.ccy and fx.date = (select min(date) 
           from exchanges x 
           where v1.ccy = x.ccy 
            and x.date >= v1.date) 
0

Найдено решение.

left outer join exchanges fx (nolock) on 
v1.ccy = fx.ccy and 
(select min(date) from exchanges (nolock) where date >= v1.date and ccy = v1.ccy) = fx.date 

Благодарим за помощь.

José

Смежные вопросы