基于不同货币的求和

lzfw57am  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(331)

我想把总价加起来
GBP 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 by不兼容
k97glaaz

k97glaaz1#

只需将整个表中的价格相加,然后将美元价格乘以英镑 0.74 ,否则使用英镑的原值:

SELECT
    SUM(CASE WHEN country = 'USD' THEN 0.74 * price ELSE price END) AS price
FROM products;

演示

处理外汇汇率的一个更好的方法是有一个单独的表,可以将任何货币转换成美元,然后再转换回来。然后,您可以简单地执行一个join来获得所需的结果,而不必将汇率硬编码到查询中。

相关问题