Используйте WITH ROLLUP
в предложении GROUP BY
:
SELECT
a.year, SUM(b.PriceDay*b.AmmountDays) profit
FROM
dbo.vehicles a
INNER JOIN
dbo.rent b ON a.Matriculation = b.Matriculation
GROUP BY
a.year WITH ROLLUP
Это даст вам дополнительную строку с NULL
в качестве значения year
, а значение в столбце суммы будетбыть общей суммой по всем сгруппированным строкам.
Обновление: , поэтому вы хотите иметь сумму для каждого года, но также и другой столбец с общей суммой по всем строкам всех лет ??
Попробуйте:
SELECT
a.year,
SUM(b.PriceDay*b.AmmountDays) profit,
(SELECT SUM(b2.PriceDay * b2.AmountDays)
FROM dbo.vehicles a2
INNER JOIN dbo.rent b2 ON a2.Matriculation = b2.Matriculation) AS TotalProfit
FROM
dbo.vehicles a
INNER JOIN
dbo.rent b ON a.Matriculation = b.Matriculation
GROUP BY
a.year
ОДНАКО: это будет НЕ работать очень хорошо, так как вы вычисляете TotalProfit
снова и снова - для каждой строки, которая будетвыводиться .....