Mysql 基于不同货币的求和
我希望以英镑计算总价Mysql 基于不同货币的求和,mysql,Mysql,我希望以英镑计算总价sum(price)但我需要将美元乘以0.74 +---------+-------+ | country | price | +---------+-------+ | GBP | 1 | | USD | 2 | | GBP | 3 | | USD | 4 | +---------+-------+ 我尝试过以下SQL: SELECT IF(`country` = 'USD', SUM
sum(price)
但我需要将美元乘以0.74
+---------+-------+
| 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\u mode=only\u full\u group\u by不兼容
只需在整个表中取一个价格总和,然后将美元价格乘以
0.74
,将其换算为英镑,否则使用英镑的原始值:
SELECT
SUM(CASE WHEN country = 'USD' THEN 0.74 * price ELSE price END) AS price
FROM products;
处理外汇汇率的一个更好的方法是有一个单独的表,可以将任何货币兑换成美元,然后再兑换回来。然后,您可以简单地执行联接以获得所需的结果,而不必将外汇汇率硬编码到查询中。只需在整个表上取一个价格总和,然后通过乘以
0.74
将美元价格缩放为英镑,否则使用英镑的原始值:
SELECT
SUM(CASE WHEN country = 'USD' THEN 0.74 * price ELSE price END) AS price
FROM products;
处理外汇汇率的一个更好的方法是有一个单独的表,可以将任何货币兑换成美元,然后再兑换回来。然后,您可以简单地进行连接以获得所需的结果,而不必在查询中硬编码外汇汇率。除此之外应该是
country='USD'
除此之外应该是country='USD'