如何在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))