Я создал следующий запрос SQL
SELECT ae.[intEntitlementID]
,SUM(decIncrease) - SUM([decDecrease]) as quantity
,(SELECT SUM([decCredit]) - SUM([decDebit]) as value
FROM [tblMonetaryValueEvent]
where [intEntitlementID] = ae.intEntitlementID
and intSchemeYear <= @intSchemeYear
group by intEntitlementID) AS VALUE
,(SUM(decIncrease) - SUM([decDecrease])) *
(SELECT SUM([decCredit]) - SUM([decDebit]) as value
FROM [tblMonetaryValueEvent]
where [intEntitlementID] = ae.intEntitlementID
and intSchemeYear <= @intSchemeYear
group by intEntitlementID) AS TOTAL
FROM [tblAllocationEvent] ae
where ae.intBusinessID = @intBusinessID
and ae.intSchemeYear <= @intSchemeYear
group by ae.intEntitlementID
HAVING SUM(decIncrease) - SUM([decDecrease]) > 0
Что возвращает следующее
Теперь мне нужно найти сумму двух строк в столбце ИТОГО.
Я хочу, чтобы следующие данные были выведены. 73046.908322 + 1150.946103
Есть ли у кого-нибудь советы о том, как СУММИТЬ два результата, возвращаемых подзапросом?
Спасибо
у вас есть много возможностей для улучшения вашего сценария. Не могли бы вы опубликовать некоторые примеры данных с ожидаемым результатом? это поможет.
Извините, желаемый результат теперь добавлен в основной текст и ниже. Мой желаемый результат - это сумма 73046,908322 и 1150,946103.
использовать СВЕРНУТЬ
SELECT i, count(*) as c, sum(i) as s
FROM TEST
WHERE i<5
GROUP BY ROLLUP(i)
дает:
i c s
1 1 1
2 1 2
3 1 3
4 1 4
NULL 4 10
как сказал @mkRabbani, вы можете улучшить свой запрос... Я думаю, что следующий может быть - более читаемый - работают лучше (но проверить не могу, т.к. нет данных)
Итак, непроверено!:
WITH sums AS (
SELECT
ae.[intEntitlementID]
,SUM(decIncrease)-SUM(decDecrease) AS quantity
,SUM(decCredit)-SUM(decDebit) As value
FROM [tblAllocationEvent] ae
INNER JOIN [tblMonetaryValueEvent] ON [intEntitlementID] = ae.intEntitlementID
and intSchemeYear <= ae.intSchemeYear
where ae.intBusinessID = @intBusinessID
and ae.intSchemeYear <= @intSchemeYear
group by ae.intEntitlementID
)
SELECT
intEntitlementID
,quantity
,value
,quantity * value as Total
FROM sums
Что означает «Теперь мне нужно добавить две строки в столбец ИТОГО, но у меня возникают проблемы с этим».? У нас нет доступа к вашим данным, и вы не показываете нам желаемый результат.