I have a database with the columns: id, pdate, pvalue1, pvalue2. First I make a query with a cursor:
Cursor c = ourDatabase.query(DATABASE_TABLE, new String[] { "_id","pdate","pvalue1","pvalue2"},
"pdate >= ? AND pdate <= ?", new String[] { datefrom, dateto }, null, null, null);
This gives me some rows, for example if pdate = 20120318, then pvalue1 = 58, pvalue2=29. These are strings so I can give a value of “XX” to pvalue2. I would like to sum the pvalue1 between the given datefrom and dateto and group them by pdate where pvalue2 = XX. My problem is that I cannot put this condition into the query (with that its working, like “pvalue2 = XX”..), because I need the other datas too.
if (c.moveToFirst())
{
do{
if (c.getString(3).equals("XX")){
Log.i("XX", c.getString(1) + " " + c.getString(2)) + " " + c.getString(3));
}
else {
Log.i("NotXX", c.getString(1) + " " + c.getString(2)) + " " + c.getString(3));
}
while (c.moveToNext());
}
}
It is okay so far, so I can log the datas with this where pvalue2 = XX and NotXX and get something like this:
(pdate,pvalue1,pvalue2) 20120317,48,29;——;20120317,21,54;——-20120317,11,XX;—–20120318,79,71;——-20120318,21,XX;
What I would like to do?
First: Grouping the sums (pvalue1) by pdate and indicate it if pvalue2 is XX or notXX, so somethnig like this:
20120317,NotXX,69 (since 48+21=69) ——– 20120317,XX,11 ——– 20120318,NotXX,79 ——– 20120318,XX,21
After this I would like to substract the XX sum from the NotXX sum for every day. I would like to get:
20120317,58 (since 69-11) ——- 20120318,58 (since 79-21)
How sould I do this?
Thank you very much in advance!
You are probably wrong. You can add something like (syntax may contain errors)
“select sum(select pdate from DATABASE_TABLE where pdata > x and pdate < y) as sum”
to the projection argument and you get that result as a column named sum. The only problem is that there is no support for
?in projection (at least I have not tried it but I guess it would not work)If that’s not what you want then there is very likely a different way. SQLite is very powerful.
Edit:
Would that be what you want? It’s not done in SQL but it would print the sum you want for each day.
Edit2: This might work when you want it done by the database.