如何对sql查询引用组中的多列求和
Posted
技术标签:
【中文标题】如何对sql查询引用组中的多列求和【英文标题】:how to sum multiple columns in sql query refrance group 【发布时间】:2019-11-26 07:13:22 【问题描述】:我需要按代理名称进行分组,并使用 sql 查询计算每个代理的所有金额
我有 3 列代理和 3 列金额,而不是 1 列代理和 3 列,您的演示应用列有代理名称和 3 列金额 1,2,3,我的意思是 6 列,公因数是名称,需要计算每个人的金额
这是迄今为止我尝试过的查询,
SELECT InternalInvestigation.Agent Name,
InternalInvestigation.Amount,
InternalInvestigation.[Amount 2],
InternalInvestigation.[Amount 3],
FROM InternalInvestigation
GROUP BY InternalInvestigation.Agent Name,
InternalInvestigation.Amount,
InternalInvestigation.[Amount 2],
InternalInvestigation.[Amount 3];
这是我要总结的表格:
我需要像上图一样获取数据
【问题讨论】:
请将代码和数据发布为文本,而不是图像。 对不起,这是什么表结构?另外,您能详细说明一下您要合计多少吗? 我需要通过对 Agnet 名称进行分组来对所有金额列 Amount + amoun2 + amount3 求和 这是您要找的吗?选择agents.name, sum(amount1+amount2+amount3) as totalAmount from agents group by agents.name 【参考方案1】:你可以试试下面这个逻辑-
SELECT an agent_name,SUM(amt) total_amount
FROM
(
SELECT agent_name an,amount amt FROM your_table
UNION ALL
SELECT agent_name_2,amount_2 FROM your_table
UNION ALL
SELECT agent_name_3,amount3 FROM your_table
) A
GROUP BY an
【讨论】:
感谢 ypu 的回答,但我在 quary 中有错误语法错误(缺少运算符) 它应该根据您的表结构使用调整后的表和列名。您能否提供您正在尝试的查询? 我使用了与您相同的查询,为我在表中的名称提供了一些更改【参考方案2】:您可以通过以下查询实现您想要的:
SELECT agent_name, SUM(amount+amount2+amount3) as Total
FROM InternalInvestigation
GROUP BY agent_name;
DEMO HERE
【讨论】:
显示没有计算的空结果 什么意思?这正是您正在寻找的预期结果。 我在访问SQL中应用了它,结果为空:) 我有 3 列代理和 3 列金额不是 1 列代理和 3 列您的演示应用列有代理名称和 3 列金额 1,2,3 我的意思是 6 列共同因素是名称并需要计算每个人的金额 请至少向我展示您正在做什么的屏幕(没有任何更改),包括准确的查询、准确的数据集和准确的表结构。如果没有更多信息,我们无法为您提供提示。以上是关于如何对sql查询引用组中的多列求和的主要内容,如果未能解决你的问题,请参考以下文章