Возвращает запрос на выборку итоговых (агрегирующих) значений для заданной коллекции колонок текущего экземпляра
EntitySchemaQuery, используя заданное пользовательское подключение.
Синтаксис
Параметры
- userConnection
- Пользовательское подключение.
- summaryColumns
- Коллекция колонок, для которых строится запрос на выборку итоговых значений.
Тип возвращаемого значения
Экземпляр
Terrasoft.Core.DB.Select построенного запроса на выборку.
Исключения
Пример
// Получение экземпляра менеджера схем объектов.
EntitySchemaManager esqManager = UserConnection.EntitySchemaManager;
// Создание экземпляра запроса с корневой схемой "Contact".
var esqResult = new EntitySchemaQuery(esqManager, "Contact");
esqResult.AddColumn(esqResult.CreateAggregationFunction(AggregationTypeStrict.Count, "Name"));
// В запрос добавляются колонки CreatedOn и ModifiedOn, для которых задается тип функции для подсчета
// итога по этим колонкам.
esqResult.AddColumn("CreatedOn").SummaryType = AggregationType.Count;
esqResult.AddColumn("ModifiedOn").SummaryType = AggregationType.Count;
// Получение коллекции колонок запроса, для которых вычисляются итоговые значения.
var esqSummaryColumns = esqResult.GetSummaryColumns();
// Получение текста sql-запроса для формирования итоговых значений для колонок из коллекции
// esqSummaryColumns.
var summarySqlText = esqResult.GetSummarySelectQuery(UserConnection, esqSummaryColumns).GetSqlText();
// Текст sql-запроса для формирования итоговых значений.
// MS SQL:
// SELECT
// COUNT(*) [CreatedOn],
// COUNT(*) [ModifiedOn]
// FROM
// (
// SELECT
// [Contact].[CreatedOn] [CreatedOn],
// [Contact].[ModifiedOn] [ModifiedOn]
// FROM
// [dbo].[Contact] [Contact]
// GROUP BY
// [Contact].[CreatedOn], [Contact].[ModifiedOn]) [SubSelectSource]
// Oracle:
// SELECT
// COUNT(*) "CreatedOn",
// COUNT(*) "ModifiedOn"
// FROM
// (
// SELECT
// "Contact"."CreatedOn" "CreatedOn",
// "Contact"."ModifiedOn" "ModifiedOn"
// FROM
// "Contact" "Contact"
// GROUP BY
// "Contact"."CreatedOn", "Contact"."ModifiedOn") "SubSelectSource"
|
Смотри также