gpt4 book ai didi

sql - 获取两个表中几列的总和

转载 作者:行者123 更新时间:2023-12-02 08:55:20 25 4
gpt4 key购买 nike

我想从 2 个不同的表中获取几列的总和(这些表共享相同的结构)。

如果我只考虑一张表,我会编写这种查询:

SELECT MONTH_REF, SUM(amount1), SUM(amount2)
FROM T_FOO
WHERE seller = XXX
GROUP BY MONTH_REF;

但是,我还想使用表 T_BAR 中的数据,然后使用返回以下列的 select 查询:

  • MONTH_REF
  • SUM(T_FOO.金额1) + SUM(T_BAR.金额1)
  • SUM(T_FOO.amount2) + SUM(T_BAR.amount2)

所有内容均按 MONTH_REF 的值分组。

请注意,给定 MONTH_REF 的记录可以在一个表中找到,但不能在另一个表中找到。在本例中,我想获得 T_FOO.amount1 + 0 (或 0 + T_BAR.amount1)的总和。

如何编写 SQL 查询来获取此信息?

仅供引用,我的数据库是 Oracle 10g。

最佳答案

您可以在 group by 之前合并表(顺便说一下,这是在 Oracle 上):

SELECT t.month_ref, SUM(t.amount1), SUM(t.amount2)
FROM (SELECT month_ref, amount1, amount2
FROM T_FOO
WHERE seller = XXX
UNION ALL
SELECT month_ref, amount1, amount2
FROM T_BAR
WHERE seller = XXX
) t
GROUP BY t.month_ref

您还可以将表与卖家字段合并并稍后进行过滤(以防您需要更高级的逻辑):

 SELECT t.month_ref, SUM(t.amount1), SUM(t.amount2)
FROM (SELECT month_ref, amount1, amount2, seller
FROM T_FOO
UNION ALL
SELECT month_ref, amount1, amount2, seller
FROM T_BAR) t
where t.seller = XXX
GROUP BY t.month_ref

关于sql - 获取两个表中几列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1388216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com