0

mysql データベースに金額を保存しています。20.00借方は -5.00 として保存されますが、貸方はsay として保存されます。そして、現在の残高が必要なので、

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 のようなデータベース システムは時々機能を減価償却するので、これが正しい方法であるかどうか心配なので、次のようなトランザクションの種類を示す別のフィールドを追加することも考えました

crd for credit
dbt for debit
etc

あなたの提案/これを行うための最良の方法は何ですか?

4

1 に答える 1

2

データをそのまま (つまり、明示的に) 格納し、負の数を使用する方が、私にとってははるかに理にかなっています。符号なしの 10 進数を使用して型を格納する必要がある場合でも、それを行うことができます。

SELECT SUM(IF(type = 'dbt', -1 * amount, amount))
于 2013-09-20T16:19:48.657 に答える