はあなたGROUP BY
句にWITH ROLLUP
を使用します。year
の値と合計欄の値は、すべてのグループ化された行を超える総合計になりますよう
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
と追加の行を与えます。
更新:したがって、合計年をすべての年のすべての行に渡って合計した別の列が必要ですか?
これを試してみてください:
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
を計算するので、 - 出力される行ごとに.....
それは毎年どのくらいのことを伝えてくれるのでしょうか?各車のどれくらいではないのですか?ちょうど ' –
これはプロセスの代わりにudfだったらこれは簡単でしょう? ProcsはTSQLの内部の結果を操作する痛みです –