Android 一个查询用于两个目的

Android 一个查询用于两个目的,android,database,sqlite,cursor,Android,Database,Sqlite,Cursor,我有以下两个问题: A 总和的结果会像这样传到textview String.valueOf(cursor.getString(4)). 第二个问题B db.query(DBHelper.TABLE, new String[] { DBHelper._ID, DBHelper._DATE_AND_TIME, DBHelper._SOURCE, DBHelper._MODE, DBHelper._AMOUNT }, DBH

我有以下两个问题:

A

总和的结果会像这样传到textview

 String.valueOf(cursor.getString(4)).
第二个问题B

db.query(DBHelper.TABLE, new String[] {
            DBHelper._ID, DBHelper._DATE_AND_TIME,
            DBHelper._SOURCE, DBHelper._MODE,
            DBHelper._AMOUNT }, DBHelper._DATE_AND_TIME
            + " BETWEEN ? AND ?", new String[] { date_min, date_max },
            null, null, null, null);
结果是

 adapter = new SimpleCursorAdapter(this, R.layout.item, cursor, from,
            to, FLAG_AUTO_REQUERY);
我想要的是合并这两个查询。在第一次查询后关闭游标,并对适配器使用相同的查询(A)。到目前为止,我已经添加了DBHelper.\u用于选择一个查询,但ListView只显示最后一个条目结果(而不是整个数据)。如何修改查询以在TextView中显示总和,然后对适配器使用相同的查询

在普通查询(如B)中,数据库为每个与WHERE筛选器匹配的表记录返回一个结果记录

但是,当您使用像SUM()这样的聚合函数时,数据库会从所有表记录(或者如果使用group BY,则从组中的所有记录)计算单个值,并将其作为单个结果记录返回

因此,您的两个查询从根本上是不同的,不能合并到一个查询中


(请注意,查询A的前四个结果列没有任何有意义的值,因为结果记录不能保证与原始表中的任何特定记录对应;您应该只要求求和值。)

非常感谢您编辑我的问题,但有人能回答吗?非常感谢您为我澄清这一点。我假设有一些可能做到这一点(例如使用别名),但我目前对数据库和查询技术的了解不太好。请确认这在理论上是否可行。再次感谢。如果在查询A中选择的列没有任何有意义的值,这是否意味着在SELECT CONSTRING查询中使用聚合函数仅返回结果函数。如果询问的问题太多,很抱歉。查询将返回固定数量的列和特定数量的行,因此如果不更改查询,则无法更改结果。使用聚合函数时,只能将表列的值用作聚合函数的参数,或者当它们已被GROUP by.OK压缩为单个值(对于特定的结果行)时。我知道了。否则,希普博士可以在创建时称之为查询。再次感谢你。
 adapter = new SimpleCursorAdapter(this, R.layout.item, cursor, from,
            to, FLAG_AUTO_REQUERY);