いくつかのクエリのパフォーマンスを改善しようとしています。クエリの構造は次のとおりです。
select 'Total_amount',
(select SUM(Total) from dbo.Invoices i where i.BU = bun.BU),
case when (select SUM(Total) from dbo.Invoices i where i.BU = bun.BU) > 100000 then 'Good' else 'Not good' end
from dbo.BusinessUnits bun
この例は結合を使用して解決できることはわかっていますが、実際のクエリではサブクエリが必要です。お気づきかもしれませんが、同じサブクエリを 2 回使用しています。1 回目は実際の値を指定し、もう 1 回はステータスを計算します。
サブクエリを一度計算するだけでパフォーマンスを向上させる方法はありますか?