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

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

aggregationType
The type of aggregate function.
columnPath
Path to the schema column in relation to the root schema.

Glossary Item Box

Gets the instance of the EntitySchemaAggregationQueryFunction aggregate function with the specified type of column in a specified path in relation to the root schema.

Синтаксис

Параметры

aggregationType
The type of aggregate function.
columnPath
Path to the schema column in relation to the root schema.

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

The instance of the created EntitySchemaAggregationQueryFunction aggregate function.

Исключения

ИсключениеОписание
Terrasoft.Common.ArgumentNullOrEmptyExceptionIf an empty string or null is received as the columnPath parameter.

Пример

В данном примере создается запрос, возвращающий сумму счетов по контрагенту "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-2017.

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

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