Mysql 如果语句为true,则将列相乘
我有一列美元和欧元货币,我想将这些货币的价值乘以相应的智利比索汇率。到目前为止,我知道如何提取美元和欧元的合同,但我不知道如何将每一个价值乘以其自身的汇率。我想可能是这样的:Mysql 如果语句为true,则将列相乘,mysql,sql,if-statement,Mysql,Sql,If Statement,我有一列美元和欧元货币,我想将这些货币的价值乘以相应的智利比索汇率。到目前为止,我知道如何提取美元和欧元的合同,但我不知道如何将每一个价值乘以其自身的汇率。我想可能是这样的: SELECT contracts.value, contracts.currency FROM contracts WHERE contracts.currency='USD' then contracts.value=contracts.value*500 OR contracts.currency='EUR
SELECT contracts.value, contracts.currency
FROM contracts
WHERE contracts.currency='USD' then contracts.value=contracts.value*500
OR contracts.currency='EUR' then contracts.value=contracts.value*750
谢谢你的帮助 您可以在select子句中执行此操作:
SELECT IF(contracts.currency='USD', contracts.value*500, contracts.value*750) as amount
FROM contracts
文档:您可以在select子句中执行此操作:
SELECT IF(contracts.currency='USD', contracts.value*500, contracts.value*750) as amount
FROM contracts
文档:您可以使用
案例
语句通过合同过滤您的合同。价值
。货币
:
SELECT contracts.currency
, CASE WHEN contracts.currency = 'USD' THEN contracts.value*500
WHEN contracts.currency = 'EUR' THEN contracts.value*750
ELSE contracts.value
END
FROM contracts
您可以使用
CASE
语句,通过contracts.currency
筛选您的合同。值
:
SELECT contracts.currency
, CASE WHEN contracts.currency = 'USD' THEN contracts.value*500
WHEN contracts.currency = 'EUR' THEN contracts.value*750
ELSE contracts.value
END
FROM contracts
如果您要使用两种以上的货币,可以使用查找表
currency | factor
-----------------
USD | 500
EUR | 750
然后像这样查询:
SELECT c.contract_id, c.contract, c.value, c.currency,
cc.factor, c.value * cc.factor AS calculatedValue
FROM contract c
INNER JOIN currency_conversion cc ON c.currency = cc.currency
此处演示:如果您要使用两种以上的货币,可以使用查找表
currency | factor
-----------------
USD | 500
EUR | 750
然后像这样查询:
SELECT c.contract_id, c.contract, c.value, c.currency,
cc.factor, c.value * cc.factor AS calculatedValue
FROM contract c
INNER JOIN currency_conversion cc ON c.currency = cc.currency
此处演示:有两种以上的货币,我该怎么办?如果有两种以上,请使用类似于诺杜利西斯回答的案例陈述有两种以上的货币,我该怎么办?如果有两种以上,请使用类似于诺杜利西斯回答的案例陈述下面的答案是有效的,但我建议,如果可能的话,不这样做,而是制作一个汇率表并进行联接。更新数据库比更新代码更容易。考虑到您的和这一点,我建议您在开始这样的工作之前先做一些基本的SQL学习,这样您就不会在每一步都提出新的问题。这个网站不是一个指导教程。我可能没有你知道的那么多,但我认为这些是有效的问题,很抱歉打扰你。下面的答案是有效的,但我建议,如果可能的话,不要这样做,而是制作一个汇率表和加入。更新数据库比更新代码更容易。考虑到您的和这一点,我建议您在开始这样的工作之前先做一些基本的SQL学习,这样您就不会在每一步都提出新的问题。这个网站不是一个指导教程。我可能没有你知道的那么多,但我认为这些都是有效的问题,很抱歉打扰你。