我在mysql数据库中存储货币值。信用卡存储为20.00
,而借记卡存储为-5.00。然后我需要当前的余额,所以
Select Sum(amount)
在这种情况下给我15.00
示例表1
uid amt
1 20
1 -5
示例表2
uid amt type
1 20 crd
1 5 dbt
然后在账户历史的情况下,我可以
select * from amount
因为这是监控值,并且因为像mysql这样的数据库系统时不时地折旧功能,我担心如果这是正确的做事方式,我还想添加另一个可能表示交易类型的字段,如< / p>
crd for credit
dbt for debit
etc
您的建议/最佳方式是什么?
答案 0 :(得分:2)
对于我来说,将数据按原样存储(即显式)并使用负数会更有意义。如果你使用无符号小数并存储类型,你仍然可以这样做。
SELECT SUM(IF(type = 'dbt', -1 * amount, amount))