我希望在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_mode = only_full_group_by
不兼容
答案 0 :(得分:2)
只需在整个表格中加上一个价格总和,然后乘以0.74
将美元价格缩放到GBP,否则使用GBP的原始值:
SELECT
SUM(CASE WHEN country = 'USD' THEN 0.74 * price ELSE price END) AS price
FROM products;
处理外汇汇率的一种更好的方法是建立一个单独的表格,将任何货币兑换成美元,然后再换回。然后,您可以简单地进行连接以获得所需的结果,而不必将外汇汇率硬编码到查询中。