我只需要当前月的SUM列值

时间:2013-11-20 17:27:49

标签: android sql

大家好我需要获得一个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;
           }

我现在有这个,但它获得该列上每个值的SUM!

我只想总结一下2013年11月的价值。

无论如何要做到这一点?

TY提前全部

编辑:

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()));

1 个答案:

答案 0 :(得分: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