Sql 将两个不同表中的总和相加
我怎样才能做到这一点。T2与另一个表链接,该表包含客户名称、国家/地区和分类等订单详细信息。它们有一个内部连接 T1仅通过订单代码和订单项链接到T2Sql 将两个不同表中的总和相加,sql,oracle,Sql,Oracle,我怎样才能做到这一点。T2与另一个表链接,该表包含客户名称、国家/地区和分类等订单详细信息。它们有一个内部连接 T1仅通过订单代码和订单项链接到T2 假设两个表报告相同的订单号集,我们可以尝试连接两个子查询,每个子查询在各自的表中查找总和: SELECT t1.ORDER_NUM, t1.ORDER_ITEM, t1.PRODUCED + t2.PRODUCED AS PRODUCED FROM ( SELECT ORDER_NUM, ORDER_ITEM, SU
假设两个表报告相同的订单号集,我们可以尝试连接两个子查询,每个子查询在各自的表中查找总和:
SELECT
t1.ORDER_NUM,
t1.ORDER_ITEM,
t1.PRODUCED + t2.PRODUCED AS PRODUCED
FROM
(
SELECT ORDER_NUM, ORDER_ITEM, SUM(PRODUCED) AS PRODUCED
FROM table1
GROUP BY ORDER_NUM
) t1
INNER JOIN
(
SELECT ORDER_NUM, ORDER_ITEM, SUM(NET_IN - NET_OUT) AS PRODUCED
FROM table2
GROUP BY ORDER_NUM
) t2
ON t1.ORDER_NUM = t2.ORDER_NUM AND
t1.ORDER_ITEM = t2.ORDER_ITEM
ORDER BY
t1.ORDER_NUM,
t1.ORDER_ITEM;
请注意,上述方法不一定是理想的方法,因为一个表中的给定订单/项目组合可能不会出现在另一个表中。更好的方法是使用包含所有订单和项目的引用表开始查询。如果失败了,我们可以将上面的内容转换为完整的外部连接。我认为一个简单的方法是
联合所有的内容。
:
select ordernum, orderitem, sum(produced) as produced
from ((select ordernum, orderitem, produced
from table1
) union all
(select ordernum, orderitem, netout
from table2
)
) t12
group by ordernum, orderitem;
与预聚合和使用join
s相比,这有两个优点:
where
claus添加到外部查询中,SQL Server可能会将其“投影”到子查询中也可以尝试下面的查询
select t1.order_num,t1.order_item,sum(t1.produced)+(select sum(net_in) from t2)-(select sum(t2.net_out) from t2)PRODUCED
from t1
group by t1.order_num,t1.order_item
如果您在使用select query时希望从另一个表中得到唯一的和,并对特定列进行求和。如果您提供我们链接到T2的其他表的详细信息,则会有所帮助。请不要将数据作为图像共享,而应使用文本。@BarbarosÖzhan此处的目的只是给出一个示例,如果是样本数据,那么肯定是文本。同样,在文本或图像中共享上述内容也没有任何区别。1.想要回答任何问题的人都需要在数据库中进行尝试,因此需要将样本数据和您的努力复制并粘贴到该数据库的介质中。当然,复制和粘贴文本数据会更容易。2.有些人可能因为防火墙之类的过滤而看不到图像。但在这个查询中,并没有使用net in列。