powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как вбырать курс валюты одним запросом в acc97?
15 сообщений из 15, страница 1 из 1
Как вбырать курс валюты одним запросом в acc97?
    #32856730
metatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть две таблицы: в одной - курсы валют(в рублях),
в другой - операции с суммами в этих валютах.
Необходимо подсчитать сумму в рублях для каждой операции.
Проблема в том, что курсы валют меняются в определенные дни,
а операции происходят практически каждый день.
При несовпадении даты изменения курса валюты с датой операции
курс считается по ближайшей предыдущей дате изменения курса.
Можно ли сделать один запрос в acc97, который бы вывел данные в виде:

НомерОперации |ВалютаОпер| ДатаОпер| СуммаОперРубли
-----------------------------------------------------------
1 | usd | 02.12.2004| 546.53
2 | gbp |05.12.2004 | 4587.65


Таблицы :

КурсыВалют

КодВалюты | Дата | Курс |
------------------------------
usd |01.12.2004 |27.60 |
gbp |04.12.2004 |35.70|
gbp |07.12.2004 |35.86|


Операции
НомерОперации | ВалютаОпер| ДатаОпер| Сумма
-------------------------------------------------
1 | usd | 02.12.2004| 19.80
2 | gbp |05.12.2004 | 128.50
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856796
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856812
metatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отвечу сам на свой вопрос:

Одним запросом в acc97 этого сделать нельзя.
Нужно использовать либо вложенные функции, либо дополнительные таблицы , а жаль .......
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856835
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам виноват - таблица курсов валют должна быть сплошной,если курс не меняется - пиши неизменный
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856842
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще-то, "таблица курсов" - никому ничего не должна...


(с выражением лица)
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856844
metatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shuhardсам виноват - таблица курсов валют должна быть сплошной,если курс не меняется - пиши неизменный

Таблицу пишет ЦБ РФ, а он, как известно, курс устанавливает не каждый день, и зачем лишние строки в таблице курсов?
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856855
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 metatron -
так что - ты не собираешься закрывать свое открытие, или хотя бы в человекообразном стиле высказываться?

ЗЫ
мысли вслух - посоветовать, что-ли человеку сайтец слабать,
- для складирования мудростей...

ЗЫ2
сегодня я "безукоризненно нежный" ( (с) классик (поштучный))

(с выражением лица)
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856896
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/88919&pg=1
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856903
metatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
(c)VIG/topic/88919&pg=1

Спасибо VIG, очень мощное решение:

SELECT c.date,
(select top 1 rate from rates r
where r.datet <=c.datet and r.rate is not null
order by r.datet desc) as Rate
FROM Contracts c
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856910
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у VIG-а решения, не знаю насколько мощные, но красивые исключительно.
Это факт.

.............

вот тобе еще пару решений - на твоих именах построенных

(причем вариаций тут можно еще дорисовать более одной...)

1) не помню, сработет ли это в 97, но бегом причин не помню для неработы.

Код: plaintext
1.
2.
3.
4.
SELECT Операции.НомерОперации, Операции.ВалютаОпер, Операции.ДатаОпер, 
nz(round(Операции.Сумма*КурсыВалют.Курс, 2 ),"курс не найден") 
  AS СуммаОперРубли
FROM Операции LEFT JOIN КурсыВалют ON (КурсыВалют.Дата<=Операции.ДатаОпер) AND (КурсыВалют.КодВалюты=Операции.ВалютаОпер)
WHERE (   КурсыВалют.Дата = (     SELECT MAX( КурсыВалют.Дата) FROM  КурсыВалют    WHERE КурсыВалют.Дата<=Операции.ДатаОпер       AND  КурсыВалют.КодВалюты=   Операции.ВалютаОпер   ) OR not exists( SELECT  КурсыВалют.Дата FROM  КурсыВалют    WHERE КурсыВалют.Дата<=Операции.ДатаОпер       AND  КурсыВалют.КодВалюты=   Операции.ВалютаОпер  ) );

2) это в любом случае должно работать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT Операции.НомерОперации, Операции.ВалютаОпер, Операции.ДатаОпер, Операции.Сумма, nz(
round(
(select КурсыВалют.Курс from КурсыВалют where 
 КурсыВалют.Дата = (     SELECT MAX( КурсыВалют.Дата) FROM  КурсыВалют    WHERE КурсыВалют.Дата<=Операции.ДатаОпер  
     AND  КурсыВалют.КодВалюты=   Операции.ВалютаОпер   )
    AND КурсыВалют.КодВалюты=   Операции.ВалютаОпер
 ) * Операции.Сумма
, 2 ),"курс не найден") AS СуммаОперРубли
FROM Операции;

ЗЫ
жаль, что ты не закрыл открытие.

может вариант с dlookup+dmax
(или по VIG-у - dlookup+dfist)
как д.з. все-таки слабаешь?
:))


(с выражением лица)
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856948
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metatronТаблицу пишет ЦБ РФ, а он, как известно, курс устанавливает не каждый день, и зачем лишние строки в таблице курсов?
1 странно - у меня стандартный скрипт(с сайта ЦБР) лазит на ЦБР - курс есть на каждый день
2 зачем лишние строки в таблице курсов - чтобы раком не стоять потом с обработкой
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856952
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shuhard
...
1 странно - у меня стандартный скрипт(с сайта ЦБР) лазит на ЦБР - курс есть на каждый день
...


да, есть , как и дата начала действия для полученного с сайта xml-документа.

(по запрошенную, если изменений не произошло)
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856960
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно сделать одним запросом, если хранить в таблице курсов не одну дату, а диапазон (период действия курса)
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856981
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогон- дык торги не каждый день - курс на каждый

вопрос закрыт,дальше флуд об избыточности и лапидарности - я пас
...
Рейтинг: 0 / 0
Как вбырать курс валюты одним запросом в acc97?
    #32856995
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shuhardвдогон- дык торги не каждый день - курс на каждый

вопрос закрыт,дальше флуд об избыточности и лапидарности - я пас

будет время и желание - ты просто глазками на тот xml взгляни...
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как вбырать курс валюты одним запросом в acc97?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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