powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Расчет кросс курсов
11 сообщений из 11, страница 1 из 1
Расчет кросс курсов
    #39392885
Mr.Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята помогите написать запрос:

Что имеем:
Есть таблица с курсов валют от рубля
Пример:
Валюта | Покупка | Продажа
USD___ | 58.60__ | 61.20
EUR___ | 64.02__ | 68.26
GBP___ | 73.56__ | 78.86

Как написать и разом получить кросс курсы основывая на эту таблицу в парах
Пример
Тип Операции | Валюта А| Валюта В| Курс |
Покупка _____| USD ____ | EUR ___ | 1.046
Продажа ____| USD ____ | EUR ___ | 0.858

Так же между всеми валютами
...
Рейтинг: 0 / 0
Расчет кросс курсов
    #39392888
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RTFM self-join
...
Рейтинг: 0 / 0
Расчет кросс курсов
    #39392922
Mr.Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,
да верно вопрос RTFM, но застрял не получается
...
Рейтинг: 0 / 0
Расчет кросс курсов
    #39392929
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Brownда верно вопрос RTFM, но застрял не получаетсяРад бы показать, что покупаем талеры, а продаём эуры, и наоборот, да не получается:
Код: plsql
1.
2.
3.
4.
5.
6.
SP2-0734: unknown command beginning "Валюта | П..." - rest of line ignored.
SP2-0734: unknown command beginning "USD___ | 5..." - rest of line ignored.
SP2-0734: unknown command beginning "EUR___ | 6..." - rest of line ignored.
SP2-0734: unknown command beginning "GBP___ | 7..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP
and to leave enter EXIT.

...
Рейтинг: 0 / 0
Расчет кросс курсов
    #39392940
Mr.Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

Набросал так, но вариант по проще есть ?

select a.cur , a.buy/b.sell
from
(select cur , sell from tmp a
where a.cur='USD') a,
(select cur , buy from tmp a
where a.cur='EUR') b

union

select a.cur , a.buy/b.sell
from
(select cur , sell from tmp a
where a.cur='USD') a,
(select cur , buy from tmp a
where a.cur='GBP') b
...
Рейтинг: 0 / 0
Расчет кросс курсов
    #39392948
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
select a.cur, b.cur, a.buy/b.sell, a.sell/b.buy from rate a, rate b where a.cur > b.cur
...
Рейтинг: 0 / 0
Расчет кросс курсов
    #39392952
NETClient
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Brownвариант по прощепо какой проще?
...
Рейтинг: 0 / 0
Расчет кросс курсов
    #39392953
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NETClient п о какой проще?
...
Рейтинг: 0 / 0
Расчет кросс курсов
    #39392982
Mr.Brown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

да, так даже лучше, но есть но, так не получиться " a.buy/b.sell, a.sell/b.buy"

нужно отдельная строка продажи, отдельная строка покупки
...
Рейтинг: 0 / 0
Расчет кросс курсов
    #39392989
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Brownнужно отдельная строка продажи, отдельная строка покупкиГлупости.
...
Рейтинг: 0 / 0
Расчет кросс курсов
    #39393213
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Brown,

Вам надо кросс курс относительно долара, или любая пара?

напр EUR - GBP

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
SQL> ed
Wrote file afiedt.buf

  1  with t(cur,k,p) as (
  2  select 'USD', 58.60, 61.20 from dual union all
  3  select 'EUR', 64.02, 68.26 from dual union all
  4  select 'GBP', 73.56, 78.86 from dual
  5  )
  6  , tt as (
  7   select t1.cur c_a,t2.cur c_b, t2.k/t1.p ck,t1.k/t2.p cp
  8   from t t1,t t2
  9   where t1.cur>t2.cur
 10  )
 11  select * from tt UNPIVOT (cross FOR f IN (ck AS 'Купівля',cp AS 'Продаж')) tt
 12* order by 1,2,3
SQL> /

C_A C_B F            CROSS
--- --- ------- ----------
GBP EUR Купівля ,811818412
GBP EUR Продаж   1,0776443
USD EUR Купівля 1,04607843
USD EUR Продаж  ,858482274
USD GBP Купівля 1,20196078
USD GBP Продаж  ,743089019

6 rows selected.



.....
stax
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Расчет кросс курсов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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