【问题标题】:Sum Column Totals from 2 tables从 2 个表中求和列总计
【发布时间】:2015-07-30 19:45:43
【问题描述】:

我正在处理一个 SQL 查询/视图,我需要对每个表中的列值求和。

所以,我有父表:LIMIT 一个限制有许多分配和许多扩展。 每个分配和每个扩展都有一个源实体。

分配表和扩展表都有列:AR 和 MTM。

我需要将分配表和扩展表中的 AR 和 MTM 汇总为一列 ARTotal 和 MTM Total。我需要为每个 SourceEntity 执行此操作。当我指定限制 OID 和源实体 OID 时,我得到给定 LIMIT 和源实体的正确结果。但是我需要获取所有 Source 实体和所有限制这是返回特定实体和限制的正确结果的代码:

   SELECT MAX(la.SourceEntity) as Source,
   MAX(la.limit)as Limit,
   SUM(la.ARLimit) as LAARLimit,
   SUM(la.MTMLimit) as LAMTMLimit,

   MAX(la.SourceEntity) as Source,
   SUM(le.ARLimit) as LEARLimit,
   SUM(le.MTMLimit) as LEMTMLimit,

   (Sum(la.ARLimit) + SUM(le.ARLimit)) as ARLimitTotal

    FROM  LimitAllocation la 
    INNER JOIN LimitExtension le
    on la.Limit = le.Limit

    where la.Limit = le.Limit 
    and la.SourceEntity = 'XXXXXXXXXX-4D0C-460B-8E2C-1F32732A1A20'
    and la.Limit = 'XXXXXXXXX-19f1-4a0f-81db-9598c0f58ea7'

此结果集返回给定源实体和给定限制的 1 条记录。并且值是正确的。

我如何获得分配和扩展表中每个源实体的结果,它们共享相同的 LIMIT OID?

【问题讨论】:

  • 样本数据和预期结果将有助于传达您的意思。
  • 用图片更新查询

标签: sql select join sum


【解决方案1】:

试试这个,如果这就是你要找的,请告诉我。

SELECT la.SourceEntity as Source,
   MAX(la.limit)as Limit,
   SUM(la.ARLimit) as LAARLimit,
   SUM(la.MTMLimit) as LAMTMLimit,

   la.SourceEntity as Source,
   SUM(le.ARLimit) as LEARLimit,
   SUM(le.MTMLimit) as LEMTMLimit,

   (Sum(la.ARLimit) + SUM(le.ARLimit)) as ARLimitTotal

    FROM  LimitAllocation la 
    INNER JOIN LimitExtension le
    on la.Limit = le.Limit

    where la.Limit = le.Limit 
   -- and la.SourceEntity = 'XXXXXXXXXX-4D0C-460B-8E2C-1F32732A1A20'
   -- and la.Limit = 'XXXXXXXXX-19f1-4a0f-81db-9598c0f58ea7'

GROUP BY la.SourceEntity

【讨论】:

  • 谢谢。我错过了 group by。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
  • 2019-03-26
  • 1970-01-01
相关资源
最近更新 更多