Creatio development guide
Это документация Creatio версии 7.8.0. Мы рекомендуем использовать новую версию документации.

EntitySchemaQuery.CreateAggregationFunction - метод Смотри также  Пример Terrasoft.Core.Entities - пространство имен > EntitySchemaQuery - класс : CreateAggregationFunction - метод C#

aggregationType
Тип агрегирующей функции.
columnPath
Путь к колонке схемы относительно корневой схемы.

Glossary Item Box

Возвращает экземпляр агрегирующей функции EntitySchemaAggregationQueryFunction с заданным типом для колонки по укзанному пути относительно корневой схемы.

Синтаксис

Параметры

aggregationType
Тип агрегирующей функции.
columnPath
Путь к колонке схемы относительно корневой схемы.

Тип возвращаемого значения

Экземпляр созданной агрегирующей функции EntitySchemaAggregationQueryFunction.

Исключения

ИсключениеОписание
Terrasoft.Common.ArgumentNullOrEmptyExceptionЕсли в качестве параметра columnPath передается пустая строка или null.

Пример

В данном примере создается запрос, возвращающий сумму счетов по контрагенту "Some Company", выставленных в текущем месяце.
// Получение экземпляра менеджера схем объектов.
EntitySchemaManager esqManager = UserConnection.EntitySchemaManager;

// Получение экземпляра EntitySchemaQuery с корневой схемой "Invoice".
var esqResult = new EntitySchemaQuery(esqManager, "Invoice");

// Добавление к запросу колонки, в которой будет вычисляться сумма счетов.
esqResult.AddColumn(esqResult.CreateAggregationFunction(AggregationTypeStrict.Sum,
                    "PaymentAmount"));

// Создание фильтра для выборки счетов по контрагенту "Some Company".
var filterAccount = esqResult.CreateFilterWithParameters
        (FilterComparisonType.Equal, "Account.Name", "Some Company");

// Создание фильтра для выборки счетов за текущий месяц.
var filterDate = esqResult.CreateFilter(FilterComparisonType.Equal, "CreatedOn",
                    EntitySchemaQueryMacrosType.CurrentMonth);

// Добавление фильтров в коллекцию фильтров результирующего запроса.
esqResult.Filters.Add(filterAccount);
esqResult.Filters.Add(filterDate);

// Получение текста результирующего запроса.
string esqSqlText = esqResult.GetSelectQuery(UserConnection).GetSqlText();

// Текст результирующего sql-запроса.

// MS SQL:
// SELECT
//            SUM([Invoice].[PaymentAmount]) [Sum]
// FROM
//            [dbo].[Invoice] [Invoice]
// WHERE
//            EXISTS (
// SELECT
//            [Account].[Id] [Id]
// FROM
//            [dbo].[Account] [Account]
// WHERE
//            [Invoice].[AccountId] = [Account].[Id]
//        AND [Account].[Name] = @P1)
//        AND ([Invoice].[CreatedOn] >= @P2
//        AND [Invoice].[CreatedOn] < @P3)

// Oracle:
// SELECT
//            SUM("Invoice"."PaymentAmount") "Sum"
// FROM
//            "Invoice" "Invoice"
// WHERE
//            EXISTS (
// SELECT
//            "Account"."Id" "Id"
// FROM
//            "Account" "Account"
// WHERE
//            "Invoice"."AccountId" = "Account"."Id"
//        AND "Account"."Name" = :P1)
//        AND ("Invoice"."CreatedOn" >= :P2
//        AND "Invoice"."CreatedOn" < :P3) 

Смотри также

© Terrasoft 2002-2016.

Был ли данный материал полезен?

Как можно улучшить эту статью?