Получить сумму разности 2 колонн sqlite - PullRequest
0 голосов
/ 19 декабря 2018

Вопрос кажется немного запутанным, приведу пример:

Таблица: id |begintimestamp |endtimestamp

     1 |      10000     |   11000
     2 |      20000     |   41000

Теперь, что я хочу сделать, это id, который находит разницу во всех строках (entimestamp - begintimestamp), а затем находит сумму всех строк.

Как показано в приведенной выше таблице:

разница идентификатора 1 - 1000 и разница идентификатора 2 - 21000

и сумма всех строк 22000.

Я пробовал этот запрос:

sqLiteDatabase.rawQuery("select sum(total) in (SELECT " +
                        "("+WorkoutDao.Properties.EndTimeStamp.columnName +"-"+
                        WorkoutDao.Properties.BeginTimeStamp.columnName+") as total FROM "
                        + WorkoutDao.TABLENAME + " where " +
                        WorkoutDao.Properties.CauseId.columnName + " = " + causeData.getId()+")";

Но я не получаю желаемого результата.

1 Ответ

0 голосов
/ 19 декабря 2018

Ваш запрос выглядит неправильно.Я бы начал с этого:

SELECT SUM(endtimestamp - begintimestamp)
FROM yourTable;

Нецелесообразно объединять строковый запрос вместе, но в этом случае, поскольку он не принимает параметров извне, он должен быть безопасным.Я могу предложить этот код Java на основе того, что вы включили в свой вопрос:

String sql = "SELECT SUM(" + WorkoutDao.Properties.EndTimeStamp.columnName;
sql += " - " + WorkoutDao.Properties.BeginTimeStamp.columnName + ") ";
sql += "FROM " + WorkoutDao.TABLENAME;
sqLiteDatabase.rawQuery(sql);
...