【问题标题】:i need to SUM column values for the curren month only我只需要对当月的列值求和
【发布时间】:2013-11-21 01:53:09
【问题描述】:

大家好,我需要一个 SUM 查询来仅对当月的值求和

有没有办法做到这一点?

public  int getTotal() {
    // TODO Auto-generated method stub
        int sum=0;
        Cursor cursor = ourDatabase.rawQuery(
                "SELECT SUM(_value) FROM TableActone", null);
            cursor.moveToFirst();
            if(cursor.getCount()>0) {
                sum=cursor.getInt(0);
            }
            return sum;
           }

我现在有这个,但它会得到该列上每个值的总和!

例如,我只想总结一下 2013 年 11 月的值。

无论如何要这样做?

一切提前

编辑:

public static final String KEY_DATEACTONE = "_date";

我有一列用户输入费用的日期。 (它是一个费用管理器应用程序)

用户输入费用日期,我使用此方法将日期输入数据库

final DatePickerDialog.OnDateSetListener mydate = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            // TODO Auto-generated method stub
            myCalendar.set(Calendar.YEAR, year);
            myCalendar.set(Calendar.MONTH, monthOfYear);
            myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            updateLabel();
        }

    };

    date.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            new DatePickerDialog(ActoneSQLentry.this, mydate, myCalendar
                    .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                    myCalendar.get(Calendar.DAY_OF_MONTH)).show();
        }
    });

}

private void updateLabel() {

    String myFormat = "dd/MM/yy"; // In which you need put here
    SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

    date.setText(sdf.format(myCalendar.getTime()));

【问题讨论】:

  • 我假设“Actone”的时间存储在某个地方,但如果您告诉我们如何将它存储在行中会有所帮助。
  • 当然,我会编辑帖子!完成了,希望对你有帮助
  • njzk2 我不是!这是一个不同的问题!我会解释的!在一项活动中,需要显示当月的总费用!我正在使用 SUM rawquery 来做这件事!在另一项活动中,我希望用户可以按月查看数据库!

标签: android sql


【解决方案1】:

你必须给它当前的月份和年份。试试这个:

SELECT SUM(_value)
FROM TableActone
WHERE strftime('%m', date_col) = strftime('%m', (
      SELECT DATE ('now')
      ))
  AND strftime('%Y', date_col) = strftime('%Y', (
      SELECT DATE ('now')
      ))

您可以查看 strftime here 的文档。

sqlfiddle demo

【讨论】:

  • acho que a soluçao é essa simplesmente agora nao me esta a somar nada, provavelmente pq a data naoo esta bem formatada! tem de estar YY/mm/dd obrigatoriamente?奥布里加多
  • 我们应该说英语,这样可以帮助更多人:)。日期的格式是什么?是字符串吗?
  • 对不起,我肯定会说英语,我的错,是的,它是一个字符串!我对这一切有点陌生,对很多东西感到困惑!你需要我给你看什么代码,这样你就能得到所有的信息?
  • 尝试将来自here的字符串格式为“YYYY-MM-DD”
  • 我正在使用它来格式化 String myFormat = "yy/MM/dd";我应该在这里改变它吗?正如您在上面看到的,我正在使用 datepickerdialog 将日期输入数据库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-10
  • 2023-02-18
  • 2013-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多