Добрый день уважаемое сообщество!

Прошу подсказать как правильно из выборки EntitySchemaQuery получить максимальную дату, или подсказать в чем ошибка.
Своял такой варик, но приходят все записи:

var date = [];
                var select = Ext.create("Terrasoft.EntitySchemaQuery", {rootSchemaName: "Activity" });
                select.addColumn("Id");
                select.addColumn("Lead");
                select.addAggregationSchemaColumn("CreatedOn", Terrasoft.AggregationType.MAX, "Date");
                select.filters.addItem(select.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Lead",
                    this.get("Id")));
                select.getEntityCollection(function(response) {
                    if (response && response.success) {
                        for (var i = 0; i response.collection.collection.items.length; i++) {
                            date[i] = response.collection.collection.items[i].values.Date.getMonth();
                        }
                    }
                }, this);

Нравится

3 комментария

Александр, Вы неправильно строите запрос. Необходимо убрать все колонки, кроме аггрегирующей из запроса.
https://msdn.microsoft.com/ru-ru/library/ms173454.aspx

Спасибо, попробую, хотя в Sql Management Studio подобный запрос проходил на ура.

Какой запрос проходил? Напрмер, если взять тот, что у Вас описан:

select Id, LeadId, max(CreatedOn) from Activity

Результатом будет ошибка:

Msg 8120, Level 16, State 1, Line 1
Column 'Activity.Id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Показать все комментарии