Запрос с колонкой суммирования

Временами бывает необходимо в одной из колонок в реестра записей отобразить сумму значений по определенной колонке.

Для того, чтобы это сделать, следует создать колонку подзапроса:

111

Пример запроса:

SELECT
        "tbl_Invoice"."Amount" AS "Amount",
        "tbl_Invoice"."OwnerID" AS "OwnerID",
        (SELECT
                SUM("tbl_InvoiceSum"."Amount") AS "Amount"
        FROM
                "tbl_Invoice" AS "tbl_InvoiceSum"
        WHERE("tbl_InvoiceSum"."OwnerID" = "tbl_Invoice"."OwnerID")) AS "AmountSum"
FROM
        "tbl_Invoice" AS "tbl_Invoice"

Пример сервиса в приложении.

Нравится

Поделиться

5 комментариев

Собственно, подзапросы разные бывают. Чащё даже не сумму вытягивают, а максимальное значение или первое подходящее по критерию (например, адрес контакта нужного типа).
Это настраивается в свойствах поля в подзапросе:
subquery

такой вопрос
есть следующий подзапрос в sq_Opportunity

	(SELECT
		SUM([tbl_Cashflow].[BasicAmount]) AS [BasicAmount]
	FROM
		[dbo].[tbl_Cashflow] AS [_tbl_Cashflow]
	WHERE([tbl_Cashflow].[OpportunityID] = [tbl_Opportunity].[ID] AND
		[tbl_Cashflow].[UseAsPandL] = :True)) AS [TourCreditSum],

в датасете по этому подзапросу сформировано поле с дробным значением.
все выводит верно, но в гриде в поле итогов нет возможности суммировать всю колонку этого поля - только вывести количество, как будто это не численное поле

я так понял оно и не должно подсчитывать (так как итоги подсчитываются SQL-запросом в БД, а не на основе датасета). Верно?
http://www.community.terrasoft.ru/forum/topic/5193

Дмитрий, вычислить итог можно, однако в некоторых версиях бинарных файлов отключена возможность подсчета итогов по колонкам подзапроса. Связано это с тем, что корректность работы колонок подзапроса лежит непосредственно на программисте, который их делает, из-за чего поступали многочисленные жалобы от клиентов о некорректности работы итогов. В результате было принято решение вообще отключить возможность суммирования по таким колонкам из-за сложности поддержки такого уровня гибкости.

Можно сделать view с подзапросом, создать и привязать к нему сервис таблицы и получать значение из неё как из обычной колонки.

Показать все комментарии