我正在尝试提高一些查询性能,查询的结构如下:
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
我知道这个例子可以使用连接来解决,但是在我的真实查询中我需要子查询。您可能会注意到,我有两次相同的子查询,一次提供实际值,另一次用于计算状态。
有没有办法通过只计算一次子查询来提高性能?