У меня есть две таблицы:Преобразование валюты в MySQL с помощью объединения
currency
стол (на основе USD), который постоянно обновляется:
+----+----------+-----------+
| id | currency | value_usd |
+----+----------+-----------+
| 1 | USD | 1 |
| 2 | AUD | 1.077315 |
| 3 | GBP | 0.620868 |
| 4 | EUR | 0.775338 |
+----+----------+-----------+
И у меня есть order
таблицу, где новые заказы
+----+-------------+----------+
| id | sales_total | currency |
+----+-------------+----------+
| 1 | 100 | USD |
| 2 | 50 | GBP |
| 3 | 75 | EUR |
| 4 | 60 | GBP |
+----+-------------+----------+
У меня есть валюта, которая диктует тип валюты, который мне нужен выводить итоговые значения, даже если все заказы хранятся в разных валютах.
Например, если $currency = 'EUR';
все суммы должны быть в EUR при запросе таблицы order
, основанной на ставках в таблице currency
. Например:
+----+-------------+----------+-----------------+
| id | sales_total | currency | converted_total |
+----+-------------+----------+-----------------+
| 1 | 100 | USD | 77.53 |
| 2 | 50 | GBP | 62.44 |
| 3 | 75 | EUR | 75.00 |
| 4 | 60 | GBP | 74.92 |
+----+-------------+----------+-----------------+
Как это сделать? Я предполагаю, что мне нужно какое-то заявление CASE
?
Там что-то не так с этим требованием. Конверсии валют действительны только при фактическом выполнении обмена валют, например. в банке. В остальное время вы просто кормите дезинформацию для пользователя. Вы должны иметь дело либо с валютой гордости за предмет, который вы продаете, либо за валюту, которую пользователь будет использовать при оплате. Это проблема бизнес-требований, а не проблема программирования. – EJP