есть сервис selectquery, в нем несколько запросов обедненных UNION ALL, в каждом запросе есть обычные поля и поля итогов(например в одном ) итогома сумма и количество продуктов детали продукты в счете за текущий месяц а в другом тот же запрос только для раздела склада.
Оно выводит сначала список продуктов которые нужно для счета а потом для склада, вот сокращенный код:

SELECT
        [OfferingID],
        ([SoldCount]),
        (a),
        [Name]
FROM
        (SELECT
        [tbl_OfferingInInvoice].[OfferingID] AS [OfferingID],
        COUNT(CAST([tbl_OfferingInInvoice].[ID] AS VARCHAR(38))) AS [SoldCount],
        SUM([tbl_OfferingInInvoice].[BasicAmount]) AS a,
        [tbl_Offering].[Name] AS [Name]
----
UNION ALL
SELECT
        [tbl_OfferingInMovement].[OfferingID] AS [OfferingID],
        COUNT(CAST([tbl_OfferingInMovement].[ID] AS VARCHAR(38))) AS [SoldCount],
        SUM([tbl_OfferingInMovement].[BasicAmount]) AS а,
        [tbl_Offering].[Name] AS [Name]
------) AS [U]
        GROUP BY
        u.[OfferingID],
        u.[Name]

для решение проблемы нужно писать так:
SELECT
        [OfferingID],
        count([SoldCount]),
        Sum(a),
        [Name]
FROM
        (SELECT
        [tbl_OfferingInInvoice].[OfferingID] AS [OfferingID],
        COUNT(CAST([tbl_OfferingInInvoice].[ID] AS VARCHAR(38))) AS [SoldCount],
        SUM([tbl_OfferingInInvoice].[BasicAmount]) AS a,
        [tbl_Offering].[Name] AS [Name]
----
UNION ALL
SELECT
        [tbl_OfferingInMovement].[OfferingID] AS [OfferingID],
        COUNT(CAST([tbl_OfferingInMovement].[ID] AS VARCHAR(38))) AS [SoldCount],
        SUM([tbl_OfferingInMovement].[BasicAmount]) AS а,
        [tbl_Offering].[Name] AS [Name]
------) AS [U]
        GROUP BY
        u.[OfferingID],
        u.[Name]

Но добавить итоги не получается(((. Это можно решить?

Нравится

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

К сожалению не понятен Ваш вопрос, можете конкретизировать его.
А также выполните sql запрос на БД, для получения результата.

Рекомендую ознакомится со статьей Использование хранимых функций в запросе

"Терещук Павел" написал:К сожалению не понятен Ваш вопрос, можете конкретизировать его.

Нужно превратить это

SELECT
        [OfferingID],
        ([SoldCount]),
        (a),
        [Name]
FROM
        (SELECT
.....

в это

SELECT
        [OfferingID],
        count([SoldCount]),
        Sum(a),
        [Name]
FROM
        (
....

"Терещук Павел" написал:А также выполните sql запрос на БД, для получения результата.

запрос в бд нормально отрабатывает, не могу задать правильные параметры в сервис.
Хранимая функция не подойдет, сейчас таких запросов 2 но в будущем будет 4

Создаете запрос, в свойстве колонки Summary Type (Итог) выберите необходимую агрегирующую функцию:

"Терещук Павел" написал:Создаете запрос, в свойстве колонки Summary Type (Итог) выберите необходимую агрегирующую функцию:

так и зделано, только в сервисе несколько селектов, в каждом проставлены итоги на поля, но в общем запросе, который ТС сам формирует - итоги не проставляются и программно тож не ставится. Пришлось сделать SQL запрос и копи пастом создать 8 полей.

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