【问题标题】:sql sum of sums of two tables两个表的总和的sql总和
【发布时间】:2017-10-29 12:31:35
【问题描述】:

如何从两个表中得到两个和的总和?

SELECT (SELECT SUM(col) FROM table1) + SELECT (SUM(col) from table2)    

没用

【问题讨论】:

    标签: sql sum


    【解决方案1】:

    你很亲密。您只需要在每个子查询周围加上括号:

    SELECT (SELECT SUM(col) FROM table1) + (SELECT SUM(col) from table2) 
    

    如果任一子查询都可以返回 NULL,您可能更喜欢:

    SELECT COALESCE(t1.s, 0) + COALESCE(t2.s)
    FROM (SELECT SUM(col) as s FROM table1) t1 CROSS JOIN
         (SELECT SUM(col) as s from table2) t2;
    

    【讨论】:

    • @Greens 。 . .我认为您不会在其中任何一个上遇到语法错误。在您的查询中,我确实解释了它:“您只需要在每个子查询周围加上括号”。
    【解决方案2】:

    由于这个link,您可以这样做:

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

    您也可以访问这些链接:

    Query SUM for two fields in two different tables

    Getting the sum of several columns from two tables

    SQL: How to to SUM two values from different tables

    【讨论】:

    • @Greens - 因为在第二个select 你把括号放在了错误的位置。 ..+ SELECT (SUM(col).. --> ..+ (SELECT SUM(col)..
    【解决方案3】:
    select coalesce(sum(x),0) from
     (
        Select sum(a) x from tab1
        Union all
        Select sum(b) from tab2
     ) Ilv 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      相关资源
      最近更新 更多