【发布时间】:2017-08-04 15:49:13
【问题描述】:
我需要编写一个 SQL 查询,根据每个表 (BrokerName) 中公共字段的分组,将两个不同表(保险和投资)中的字段 (BranchRevenue) 汇总为一个数字。数据库是 MS Access(我在下面的超链接中提供了一个示例结构)。
通过查看 SO 上的类似帖子,我的理解是,我需要定义各个表的总和(我可以这样做),然后使用 DISTINCT 或 DISTINCTROW 将它们聚合在一起(我不能这样做)。
这里是每个表的单独查询,它们正确地按 BrokerName 对 BranchRevenue 求和。
SELECT Investments.BrokerName AS [BrokerName],Sum(Investments.BranchRevenue) as [BranchRevenue]
FROM Investments WHERE ( ((Investments.Ledger = 'Actual') AND (Investments.Year1 = 2017) AND (Investments.Period = 6) AND (Investments.Branch = 'Toronto') ) )
GROUP BY Investments.BrokerName
SELECT Insurance.BrokerName AS [BrokerName],Sum(Insurance.BranchRevenue) as [BranchRevenue]
FROM Insurance WHERE ( ((Insurance.Ledger = 'Actual') AND (Insurance.Year1 = 2017)
AND (Insurance.Period = 6) AND (Insurance.Branch = 'Toronto') ) )
GROUP BY Insurance.BrokerName
如何使用单个 SQL 语句来完成此操作?
理想的解决方案是正确地将两个表中的 BranchRevenue 相加为每个 BrokerName 的一个数字,而不是从两个表中复制数据。
【问题讨论】: