Как запросить резюме / группу в devexpress с расширенными запросами
Простой запрос:
var viewModel = {
dataSource: Application_with_Chart.db.nom_clasa_articole.toDataSource({
select: ["id","product", "quantity"]
})
};
return viewModel;
в SQL:
SELECT id,product,quantity
FROM nom_clasa_articole
Это просто, но мне нужен запрос с группировкой и суммой:
SELECT id, product, SUM(quantity)
FROM nom_clasa_articole
GROUP BY product
Как я могу написать этот запрос в devexpress?
1 ответ
Если я не ошибаюсь, речь идет о многоканальных приложениях DevExtreme. Они пользуются услугами OData.
OData Prodocol не имеет прямого эквивалента SQL GROUP BY
, У вас есть два варианта здесь:
Используйте операции службы OData для группировки на стороне сервера.
Выполните группировку на клиенте в
postProcess
обработчик, как показано ниже.
Группировка на стороне клиента:
var viewModel = {
dataSource: Application32.db.nom_clasa_articole.toDataSource({
select: ["id", "product", "quantity"],
postProcess: function(items) {
// Grouping occurs here
var groups = {};
$.each(items, function() {
var groupKey = this.product;
if(!groups[groupKey])
groups[groupKey] = { quantity: 0 };
groups[groupKey].quantity += this.quantity;
});
return $.map(groups, function(v, k) {
return { product: k, quantity: v.quantity };
});
}
})
};