Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

SQL подстановка данных

Дмитрий Гуру (3791), на голосовании 5 лет назад
Предположим у базе есть 2 таблицы.
1 таблица содержит поля: Курс доллара и Дата с которой курс действует.
2 таблица Платежи с полями : Дата платежа и сумма в рублях.
Вопрос есть ли способ с помощю SQL подставить во 2 таблицу значения курса доллара на дату платежа?
Голосование за лучший ответ
Полосатый жираф Алик Искусственный Интеллект (313068) 5 лет назад
А что сложного? Выбираешь курс по условию Дата платежа = Дата курса. И умножаешь/делишь на этот курс.
Jurijus ZaksasИскусственный Интеллект (445855) 5 лет назад
Я так понимаю, что там один курс может несколько дней действовать, так что не все так просто, но ненамоного сложнее.
ДмитрийГуру (3791) 5 лет назад
дело в том, что дата платежа может быть и не равна дате курса. иначае нам прийдется на каждую дату вводить курс доллара, но целесообразно ли так делать
Полосатый жираф Алик Искусственный Интеллект (313068) Тогда искать по условию: MAX(Дата курса) с условием Дата платежа <= Дата курса.
ДмитрийГуру (3791) 5 лет назад
точнее не дате курса, а дате с которой начал действовать курс
Jurijus Zaksas Искусственный Интеллект (445855) 5 лет назад
Да, такой способ, разумеется, есть.
ДмитрийГуру (3791) 5 лет назад
и что за способ то
Jurijus Zaksas Искусственный Интеллект (445855) Сделать view, в котором будут дата начала и конца действия каждого курса. Затем сделать join между таблицей продаж и этим view по условию between, примерно так: SELECT * FROM SALES S INNER JOIN V_RATES R ON S.SALE_DATE BETWEEN R.FROM_DATE AND R.TILL_DATE
Похожие вопросы