当前位置: 首页 > 知识库问答 >
问题:

SQLite如何在“GridView”中求和列的值`

越季萌
2023-03-14

我环顾四周,发现了一些类似的案例,但没有一个需要在条目中进行具体总结的案例。所以我在这里。

我有一个方法filterPayments,它根据特定的GroupID返回我的PayTable中的所有条目,然后显示在我的GridView中。在此基础上,我想对PayTable中5列中的2列的值求和,特别是我的利息到期列。我不知道如何在查询中做到这一点,更不用说只对特定列这样做了。

问题

如何添加特定列中所有条目的值。

在SQLite查询中可以这样做吗?如果是,我如何使用filterPayments的返回值,并仅对特定列执行求和?如果不是,那我该怎么做?

下面是我的代码片段。

filterPayments

Cursor filterPayments(String Payment) {
    SQLiteDatabase db = this.getWritableDatabase();
    String[] columns = new String[]{"_id", colGroupID, colPayBal, colInterest, colDue, colDateDue, colPaid};
    Cursor c = db.query(viewPmnts, columns, colGroupID + "=?", new String[]{Payment}, null, null, null);
    return c;
}

GridView

public void Paygrid() {

    dbHelper = new DatabaseHelper(this);
    String Payment = String.valueOf(txt.getText());
    Cursor a = dbHelper.filterPayments(Payment);
    startManagingCursor(a);

    String[] from = new String[]{DatabaseHelper.colPayBal, DatabaseHelper.colInterest, DatabaseHelper.colDue, DatabaseHelper.colDateDue, DatabaseHelper.colPaid};
    int[] to = new int[]{R.id.Amount, R.id.Interest, R.id.Due, R.id.DateDue, R.id.Paid};

    SimpleCursorAdapter saa = new SimpleCursorAdapter(this, R.layout.paygrid, a, from, to);
    intgrid.setAdapter(saa);
}

共有2个答案

艾国安
2023-03-14

我希望我没弄错你的问题。但是,如果有两列的列名分别为interestdue,则可以通过SQL查询获得这两列的总和

SELECT interest + due FROM PayTable;

这也适用于乘法(及其逆运算)。不幸的是,对于非整数指数(如平方根),它变得更加棘手。据我所知,您需要已经提到的自己的SQLite函数。如果幸运的话,您可以从C标准库(搜索扩展函数. c)加载一个包装math. h的模块

对于表中求和的其他方法,请查看PostgreSQL的这个问题(对于SQLite也是如此)

司空修贤
2023-03-14

我建议从列中提取所有数据,然后在Java或android中求和。这是最简单的方法。

没有执行此操作的核心sqlite函数。https://www.sqlite.org/lang_corefunc.html

但是,您可以创建自定义sqlite函数。看看下面。如何在SQLite中创建自定义函数

 类似资料:
  • 我正在我的活动中使用网格视图。我还有一个自定义网格添加器来显示每个网格上的图像和文本视图。 在启动我的活动时。我需要根据值动态创建网格行和列。 请告诉我如何实现此功能。 我的网格视图: 我已经使列 android:num列列=“auto_fit”所以它默认为2列。 我也有一个定制的网格适配器 我还在我的活动中使用了这个函数 但我担心在活动中手动给出值。因为我觉得它可能会给横向模式提供异常的UI。

  • 问题内容: 我正在编写一个基于PHP的Web应用程序,该应用程序可以与多个数据库系统一起使用。最重要的是MySQL和SQLite,但是PostgreSQL和其他也不错。为此,我尝试使用尽可能可移植的SQL。在无法做到这一点的地方,我在查询中定义了一些元数据,这些元数据由数据库层处理,并转换为特定于平台的SQL命令。 我现在正在尝试添加序列支持。每个DBMS处理序列的方式都不同,没有通用的方法可以用

  • 问题内容: 我想知道如何从gridview获取列名?按其编号而不按名称。例如:姓名|年龄|生日:(所以姓名= 0,年龄= 1等) 谢谢。 问题答案: 您可以这样获得它: 或像这样: Rows [0]应该是您的标题行。

  • 问题内容: 我仍然有BigDecimal的(眼泪开始跟踪大问题在这里,并继续在这里至今。 现在我遇到了相反的问题-从POJO中的BigDecimal到SQLite表中的REAL。 POJO定义为: 这段代码试图使数据形式正确,以便能够发布到SQLite表(其中相应的列是数据类型REAL,这是SQLite唯一的实数/浮点数据类型): 对于上面的COLUMN_COST行(“ MARGIN”和“ LIS

  • (0,0)(0,1) (1,0)(1,1) 像这种格式一样,我需要显示,也需要根据数据大小水平和垂直滚动

  • 我试图创建一个控制台应用程序,在那里我从请求总面积的用户那里获取输入,然后我询问用户在该区域中的结构的数量,然后我将值存储在列表中。我尝试做的是通过结构减去总面积,但我不能从列表中求和值