如何在mysql中基于另一列在同一行进行减法

如何在mysql中基于另一列在同一行进行减法,mysql,sql,Mysql,Sql,我试图用卖出的美元减去买入的美元 **|Tran_ID|Currency_type|currency_Amount|Local_Amount| Rate |Tran_type| ** | 85 | USD | 2500 | 1581.54 |1.58074 | Bought | | 78 | USD | 3487.57 | 2206.29 |1.58074 | Bought | | 86

我试图用卖出的美元减去买入的美元

**|Tran_ID|Currency_type|currency_Amount|Local_Amount|  Rate  |Tran_type| ** 
  | 85     |   USD      |   2500       |    1581.54  |1.58074 |  Bought |
  | 78     |   USD      |   3487.57    |    2206.29  |1.58074 |  Bought |
  | 86     |   USD      |   100        |    63.26    |1.58074 |  Bought |
  | 87     |   USD      |   94.17      |    63.26    |1.48866 |  Sold   |
  | 88     |   USD      |   2600       |    1746.54  |1.48866 |  Sold   |
  | 89     |   USD      |   2600       |    1746.54  |1.48866 |  Sold   |
我可以通过下面的查询添加售出或购买的美元总值

SELECT Currency_type, sum( currency_Amount ) AS total_bought
FROM Transaction
WHERE Currency_type=  'USD'
AND Tran_type =  'Bought'       <==  **or 'Sold'**

您可以根据您的交易类型设置一个标志:

SUM(currency_Amount * IF(Tran_type = "Bought", 1, -1))

这三列中的一列(货币金额、本地金额、汇率)是多余的,因为每一列都可以很容易地从其他两列中派生出来。。。哦,您的货币数据类型是DECIMAL,对吗?是的,但我使用数据库连接到前端应用程序,我在那里过滤它,问题是什么?如果要关联数据库中的不同行,则需要一个链接这两行的键。如何将这两个值一起减去>?例如,买入的美元等于6087.57美元,卖出的美元等于5294.16美元。减去它们,我的余额是793.41。我怎么能质疑呢?我的答案应该有用。用此替换您的总和,并删除和。
SUM(currency_Amount * IF(Tran_type = "Bought", 1, -1))