Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Надо составить запрос ....
|
|||
|---|---|---|---|
|
#18+
У меня возникла такая задачка : Надо составить запрос который бы возвращал ближайший (или наиболее близккий из предыдущих) курс валюты для заданной даты, проблема в том что нет 100% гарантии что там есть курс на каждую дату ! Структура таблицы с курсами валют: CurrDate datetime Rate decimal Type tinyint На всякий случай : Все это нужно для того чтобы в триггере обрабатывать UPDATE поля с датой, т.к. может быть пакетное обновление надо либо подзапрос для каждой строки из updated и в той же таблице делать изменение в определенных полях ... как я понимаю это легко сделать с помощью функции но у меня MS SQL 7 В принципе главное чтобы всегда возвращался какойто курс так как он используеться в мат. операциях и если его не будет может получиться ошибка ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2001, 06:07 |
|
||
|
Надо составить запрос ....
|
|||
|---|---|---|---|
|
#18+
Что-то типа следующего declare @MyDate datetime declare @MyType int set @MyDate = ... set @MyType = ... select Rate from CursTbl where CurrDate = (select max(CurrDate) from CursTbl where CurDate<=@MyDate and Type=@MyType) and Type=@MyType ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2001, 06:26 |
|
||
|
Надо составить запрос ....
|
|||
|---|---|---|---|
|
#18+
А не Scala ли у тебя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2001, 07:37 |
|
||
|
Надо составить запрос ....
|
|||
|---|---|---|---|
|
#18+
Если валюта только одна можно еще проще: select top 1 Rate from CursTbl where CurrDate <=@date order by CurrDate desc Если же их несколько(допустим Type - это отдельная валюта), то: select type, Rate from CursTbl c1 where CurrDate = (select max(CurrDate) from CursTbl c2 where CurDate<=@MyDate and c1.Type=c2.Type) Или же через временную таблицу: сначала выбрать нужные даты, за которые есть курсы, а потом уже сами курсы, но в данном случае, когда количество валют немного, можно и вложенным запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2001, 07:42 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32007206&tid=1826539]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 376ms |

| 0 / 0 |
