我想对GBP
SUM(price)
中的总价格求和,但是我需要通过乘以0.74
将USD转换为GBP
+---------+-------+
| country | price |
+---------+-------+
| GBP | 1 |
| USD | 2 |
| GBP | 3 |
| USD | 4 |
+---------+-------+
我试过这个SQL:
SELECT
IF(`country` = 'USD',
SUM(price * 0.74),
SUM(price)
) AS price
FROM `products`
但它返回错误:
这与sql_mode = only_full_group_by不兼容
最佳答案
只需将整个表的价格相加,然后乘以0.74
将美元价格缩放为GBP,否则使用GBP的原始值:
SELECT
SUM(CASE WHEN country = 'USD' THEN 0.74 * price ELSE price END) AS price
FROM products;
Demo
处理外汇汇率的一种更好的方法是拥有一个单独的表格,该表格将任何货币转换为美元,然后再次转换为美元。然后,您可以简单地进行联接以获得所需的结果,而不必将外汇汇率硬编码到查询中。
关于mysql - 根据不同货币进行求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50307251/