【问题标题】:How to add the sum of the 'sum of the two tables?'如何将“两个表的总和”相加?
【发布时间】:2018-05-05 05:50:46
【问题描述】:

我创建了表 T1 和 T2。我设法将它们的总和相加,但我似乎无法通过在代码开头添加 sum() 来将 T1 和 T2 的总和 (10+12 = 22) 相加。

    CREATE TABLE T1(kW int)
    CREATE TABLE T2(kW int) 

    SELECT T1C1, T2C1
    FROM
     ( select SUM(Kw) T1C1 FROM  T1 ) A
    CROSS JOIN 
     ( select SUM(Kw) T2C1 FROM  T2 ) B

    BEGIN
    INSERT INTO T1 VALUES ('4');
    INSERT INTO T1 VALUES ('1');
    INSERT INTO T1 VALUES ('5');
    INSERT INTO T2 VALUES ('7');
    INSERT INTO T2 VALUES ('2');
    INSERT INTO T2 VALUES ('3');
    END

【问题讨论】:

  • (10+12 = 22) 抱歉
  • 我不明白。你有三个答案,都在做不同的事情;但是,在 YOU 尝试的查询中,将 , T1C1 + T2C1 as sum_of_both_tables 添加到外部 SELECT 子句有什么问题?

标签: sql oracle select oracle11g sum


【解决方案1】:

另一种做法是直接将两个子查询的结果相加,使用内置的伪表dual作为主驱动表:

select ( select SUM(Kw) FROM T1 )
     + ( select SUM(Kw) FROM T2 ) as total
from dual;

     TOTAL
----------
        22

【讨论】:

    【解决方案2】:

    尝试使用存储过程。这样做您将能够将每个表的总和存储在一个单独的变量上,然后返回这两个变量的总和。

    您还可以创建一个UNION ALLSUM 所需的列。请注意,您应该使用UNION ALL 以避免消除重复值。

    【讨论】:

      【解决方案3】:

      您应该使用union all 从两个表中的列创建一个“虚拟”列:

      SELECT SUM(kw)
      FROM   (SELECT kw FROM t1
              UNION ALL
              SELECT kw FROM t2) t
      

      【讨论】:

        猜你喜欢
        • 2017-06-12
        • 1970-01-01
        • 2018-04-25
        • 2013-09-09
        • 2022-06-28
        • 2018-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多