在sqlite3中获得平衡

时间:2014-05-04 02:51:25

标签: android database sqlite android-sqlite

我希望从“借记”表中获得余额给出一个Id。

例如:

User                      Debit                          

id   |  name              user_from  | user_to   | value  

1    | John               1          |    2      | 13.23          
2    | Marie              1          |    2      | 20          
3    | Peter              2          |    1      | 53
                          1          |    3      | 2.45

我是约翰,所以我想把我的余额检查给其他人。

约翰的余额= +20.23(对于玛丽的) 约翰的平衡= -2.45(对彼得的)

我正在使用sqlite 3 for android!

我创建了一个SQLFIDDLE来查看它是否有帮助!链接:SQLFiddle

非常感谢您的时间和帮助!

2 个答案:

答案 0 :(得分:1)

使用相关子查询计算每个用户的小计:

SELECT id,
       name,
       (SELECT TOTAL(value)
        FROM Debit
        WHERE user_from = User.id
          AND user_to   = 1) -
       (SELECT TOTAL(value)
        FROM Debit
        WHERE user_to   = User.id
          AND user_from = 1) AS amount
FROM User
WHERE amount <> 0;

id          name        amount    
----------  ----------  ----------
2           Marie       19.77     
3           Peter       -2.45     

答案 1 :(得分:0)

我为了欠你欠钱的人而想出这样的事情({1}}

更新:我还没有测试过这个,但是试试这个,然后在你有2列之后做你的减法。 SELECT SUM(value) FROM debit WHERE user_from = (SELECT id FROM User WHERE name=‘John’)