2

一个简单的查询:

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

这很简单,但我需要一个带有 group by 和 sum 的查询:

SELECT id, product, SUM(quantity)
FROM nom_clasa_articole
GROUP BY product

如何在 devexpress 中编写此查询?

4

1 回答 1

0

如果我没记错的话,问题是关于DevExtreme Multi-channel applications。他们使用 OData 服务。

OData prodocol 没有直接等效于 SQL GROUP BY。您在这里有两个选择:

  1. 使用OData 服务操作在服务器端进行分组。

  2. 在处理程序中对客户端执行分组,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 }; 
            });
        }
    })
};
于 2013-10-09T12:47:34.217 回答