SQL Server 中使用 Sum Aggregate 函数进行内部联接

Posted

技术标签:

【中文标题】SQL Server 中使用 Sum Aggregate 函数进行内部联接【英文标题】:Inner Join with Sum Aggregate function in SQL Server 【发布时间】:2011-09-18 15:58:58 【问题描述】:

我有三个表 StockSummary、Item、ItemSpecification。 在这里,我想加入这三个表并获得 Sum(StockSummary.Quantity)。 主要栏目如下:

TableA: StockSummary(ItemID, Quantity)
TableB: Item(ItemID, ItemName, SpecificationID)
TableC: ItemSpecification(SpecificationName, SpecificationID)

所需的结果应该给出 ItemName、SpecificationName 和 SUM(Quantity)。如何在 Inner Joins 中使用 Aggregate 函数?

【问题讨论】:

【参考方案1】:

您通过余数聚合所需的列和组,列来自连接结果的事实与您的情况无关;

select
   b.ItemName,
   c.SpecificationName,
   sum(a.Quantity)
from
   tablea a
   inner join tableb b on b.ItemID = a.ItemID
   inner join tablec c on c.SpecificationID = b.SpecificationID
group by
   b.ItemName,
   c.SpecificationName

【讨论】:

以上是关于SQL Server 中使用 Sum Aggregate 函数进行内部联接的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server UNION SUM 丢失重复值 [重复]

在 SQL Server 中运行 sum 与在代码中处理 sum 都有哪些性能问题? [关闭]

SQL Server 中的复合 SUM [重复]

更新 SQL Server 中 GROUP BY sum() 函数的查询问题 [关闭]

SQL Server SUM IF 使用具有多个条件的窗口函数

SQL Server:带有内部 SELECT 和子 SELECT 的 SUM()。每次都出错