Конвертация валют для валют NxN в SSMS - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть таблица (скажем, A), которая дает мне конвертацию валюты из валюты в доллары США.Допустим, у меня есть 3 валюты на данный момент.

enter image description here

используя эту таблицу, я хочу создать следующую выходную таблицу (скажем, B).

enter image description here

Например, AED для ARS будет 3,67 / 18,87 = .19

Представьте, что у меня 70 валют из таблицы AЭто становится трудно рассчитать вручную.Я пытаюсь сделать это в SSMS.

Было бы здорово иметь подход.

Заранее спасибо

1 Ответ

0 голосов
/ 18 декабря 2018

Вы можете получить комбинацию всех обменных значений, взяв декартово произведение таблицы с собой.Мы можем использовать CROSS JOIN для того же самого.

Поскольку toCurrency во всех случаях равен USD, мы можем напрямую разделить значения 'from' из 2 таблиц, чтобы получить другие комбинации из ив валютах.Пример фрагмента кода выглядит следующим образом:

DROP TABLE IF EXISTS currencyExchangeBase
CREATE TABLE currencyExchangeBase ( fromCode varchar(3),
                                             toCode varchar(3),
                                                    exchangeValue numeric(19, 2) )
INSERT INTO currencyExchangeBase
VALUES ('AED','USD',3.67),('ARS','USD',18.87), ('AUD','USD',1.28205);


SELECT b1.fromCode AS fromCode,
       b2.fromCode AS toCode,
       b1.exchangeValue/b2.exchangeValue AS exchangeValue
FROM currencyExchangeBase b1
CROSS JOIN currencyExchangeBase b2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...