powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Select с попаданием в интервал.
5 сообщений из 5, страница 1 из 1
Select с попаданием в интервал.
    #39854245
Sashaua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица exchange_rate где устанавливается курс для валют.
IDDATEID_CURRENCYMIN_EXHANGE_RATEMAX_EXHANGE_RATEID_STATUSID_USER11.08.201922626.505221.08.201933031.505232.08.201922626.505242.08.201933031.505253.08.201922626.515263.08.201933031.5152
Где ID_STATUS
0- неактивный курс
1- активный курс

После некоторого изменения в бизнес логике процессов, нет необходимости в установке курса каждый день, необходимо иметь активный курс ID_STATUS =1.
И хочется отойти от ежедневной установки курса
Например:
IDDATEID_CURRENCYMIN_EXHANGE_RATEMAX_EXHANGE_RATEID_STATUSID_USER32.08.201922626.505242.08.201933031.5152527.08.201922626.9128
Мы понимаем что для ID_CURRENCY=2 в период с 2.08.2019 по 27.08.2019 MAX_EXHANGE_RATE=26.5.
В друг прилетит хотелка в виде "мы хотим знать какой был курс для ID_CURRENCY=2 15.08.2019". Можно ли выборкой получить курс который действовал для валюты когда когда даты в таблице не будет для этой валюты?
понимаю что как то карявенько сформулировано.
...
Рейтинг: 0 / 0
Select с попаданием в интервал.
    #39854246
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashauaМожно ли выборкой получить курс который действовал для валюты когда когда даты в таблице не будет для этой валюты?


Можно ли выборкой получить курс на дату, а в случае его отсутствия ближайший "до" и "после" запрашиваемой даты.
...
Рейтинг: 0 / 0
Select с попаданием в интервал.
    #39854255
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"который действовал " - значит "ДО"
...
Рейтинг: 0 / 0
Select с попаданием в интервал.
    #39854258
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sashaua,

Код: sql
1.
2.
3.
4.
5.
6.
7.
select MIN_EXHANGE_RATE, MAX_EXHANGE_RATE	-- ну и что там ещё надо
from exchange_rate
where ID_CURRENCY=2 
  and "DATE" <= date'15.08.2019'
  and ID_STATUS = 1 
order by bydate desc
fetch first rows only
...
Рейтинг: 0 / 0
Select с попаданием в интервал.
    #39854259
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sashaua,

Как-то так:
Код: sql
1.
2.
3.
4.
...
where a."Date"<=CurrentDate
order by a."Date" desc
rows 1



Только надо помнить, что индексы в ФБ однонаправленные. Может понадобиться создание индекса по "Date" с сортировкой по убыванию.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Select с попаданием в интервал.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]