У меня следующий запрос SQLlite, который должен отображать штрих-код и суммировать количество штрих-кодов между указанным c диапазоном дат. Запрос SQLite показан ниже:
public Cursor getResult(Date start, Date end)
String[] selectionArgs = new String[]{String.valueOf(start.getTime()), String.valueOf(end.getTime())};
String selection = "SELECT " + SalesProjections.BARCODE.getName() +
", SUM(" + SalesProjections.QUANTITY.getName() + ") " +
"FROM " + SalesProjections.TABLE_NAME +
" WHERE " + SalesProjections.DATEPROJECTED.getName() + " BETWEEN ? AND ? " +
" GROUP BY " + SalesProjections.BARCODE.getName();
return RepositoryAPI.getInstance().getCursorByRawQuery(
selection,
selectionArgs,
ORDER.ASC,
SalesProjections.BARCODE.getName());
}
Я сейчас пытаюсь преобразовать тот же запрос для использования ObjectBox. Ниже приведены класс и функция данных:
Класс SalesProjection выглядит следующим образом:
@Entity
data class SalesProjections(
@Id var id: Long = 0,
val barCode: String? = null,
val dateProjected: Long = 0,
val quantity: Int = 0)
, и моя текущая попытка преобразования выглядит следующим образом:
fun getResult(start: Date, end: Date) {
val builder = saleprojectionBox.query()
var result = builder
.between(SalesProjections_.dateProjected, start.time, end.time)
.order(SalesProjections_.barCode)
.build()
.find()
}
Я знаю, что ObjectBox не имеет функции GroupBy, и я не хотел разбивать каждый результат и сначала получать список или штрих-коды, а затем получать список количеств на основе штрих-кодов. Могу ли я получить несколько советов о том, как я могу достичь своих потребностей