按日期我有一个存有金钱项目的表格。 有些货币项目是贷款,其他货币则是借入。
根据我的要求,我想首先获得所有贷款,按月(使用strftime函数),并按月将所有借入资金联合起来(或加入不知道)。
因此,如果我有一个专门的月份,只有一个贷款项目或只有一个借项,我仍然想抓住它。
然后我将使用结果显示两个条形图图形。
这是我的sql语句:
Cursor cursor = mDb.rawQuery("SELECT date_o, loan, borrow FROM " +
"(SELECT strftime('%m', date) AS date_o, SUM(amount) AS loan, '0' AS borrow FROM " +
"(SELECT date, amount FROM " + DATABASE_TABLE + " WHERE date > date('now', '-6 months') AND TYPE = " + ActivityClass.DATABASE_LOAN_TYPE + " ORDER BY date DESC) " +
"GROUP BY strftime('%m', date) " +
"UNION ALL " +
"SELECT strftime('%m', date) AS date_o, '0' AS loan, SUM(amount) AS borrow FROM " +
"(SELECT date, amount FROM " + DATABASE_TABLE + " WHERE date > date('now', '-6 months') AND TYPE = " + ActivityClass.DATABASE_BORROW_TYPE + " ORDER BY date DESC) " +
"GROUP BY strftime('%m', date)) GROUP BY date_o", null);
UNION之后的声明似乎用0清除所有贷款项目。 我在网上检查了LEFT OUTER JOIN,但仍然试图了解这如何能够满足我的需求。
最后,我想要的是这样的事情:
这是我的表:
Date Amnt Type
01/12/2016 15 Borrow
05/12/2016 10 Loan
01/11/2016 20 Loan
19/11/2016 10 Loan
01/10/2016 15 Borrow
这就是我想要的(在重新组合strftime之后按月计算:
Month SUM(loan) SUM(borrow)
10 0 15
11 30 0
12 10 15
感谢。