【发布时间】:2015-08-03 14:49:16
【问题描述】:
我正在尝试对具有 2 个连接的表的结果集中的值求和。
我有一个名为 Limit 的表。 一个限制有许多分配。 一个限制也有许多扩展。 分配和扩展都有一个实体。
当我在 where 子句中使用 Oid 指定 Limit 时,我会返回一条记录。即使限制有 9 个分配。 如果限制有 9 个分配和 0 个扩展,我仍然得到 1 个返回。 即使极限有零扩展,我仍然期待 9 个分配。 我希望这是有道理的。这是我的更新查询: -----我用这个更新了我的查询。我现在得到了给定限制的正确记录数量。我得到 9 条记录:-----
select
convert(varchar(100), l.oid) AS keyfield,
l.oid as Limit,
la.SourceEntity as SourceEntity,
SUM(ISNULL(la.ARLimit, 0)) + SUM(ISNULL(le.ARLimit, 0)) AS ARLimit,
SUM(ISNULL(la.MTMLimit, 0)) + SUM(ISNULL(le.MTMLimit, 0)) AS MTMLimit,
SUM(ISNULL(la.Volume, 0)) + SUM(ISNULL(le.Volume, 0)) AS Volume,
SUM(ISNULL(la.MaxTenor, 0)) + SUM(ISNULL(le.MaxTenor, 0)) AS MaxTenor
from limit l
left join limitallocation la
on l.oid = la.limit
left join limitextension le
on l.oid = le.limit
where l.Oid = '893de7ad-0ed2-462f-8bac-a26718b3e798'
GROUP BY l.Oid, la.SourceEntity
【问题讨论】:
-
请包含您使用的数据库作为标签。
标签: sql select join sql-server-2012 isnull