有人编写了以下存储过程查询(我删除了所有不相关的代码以使事情更容易阅读)
SELECT
CRL.ClientNum ,
..."A lot of columns"...,
ISNULL((SELECT SUM(Amount) FROM db..History dh (nolock) WHERE dh.id = dd.Id AND ActivityId = 11), 0.00) AS [Some Amt],
..."A lot more columns"...
FROM db..[SomeLog] SL
..."A lot of inner joins and left joins"...
where clause
order by clause
这一切都好,但是,现在我需要放入一个 Case 语句来选择/比较“db..History”表中的列。问题是此表上没有现有联接。
- 我已经尝试在“db..History”表上放置一个内部连接,但这会返回比它应该的多得多的行。很可能是因为它加入的表有多个“历史记录”。
- 我曾考虑在开始时使用临时表来存储“db..History”表值,但这需要执行大量内部连接来获取数据并且会影响性能。