代码之家  ›  专栏  ›  技术社区  ›  Megrez7

从两个单独的表中联接两个聚合

  •  1
  • Megrez7  · 技术社区  · 7 年前

    我正在寻找一种方法来“连接”两个查询的结果。 预期结果是一行两个聚合 SumValueA SumValueB .

    这两个查询都只返回一行。 JOIN 将不起作用,因为两个表没有任何共同的数据。

    我正在使用SQL Server 2017。

    查询1:

    SELECT Sum(ValueA) AS SumValueA
    FROM dbo.TableA
    

    SELECT Sum(ValueB) AS SumValueB
    FROM dbo.TableB
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   Ryan Sparks    7 年前
    SELECT  (SELECT Sum(ValueA) FROM dbo.TableA) AS SumValueA,
            (SELECT Sum(ValueB) FROM dbo.TableB) AS SumValueB
    
    
        2
  •  1
  •   Sam M    7 年前

    你可以使用 cross join .

    SELECT sumvalueA, sumvalueB
      FROM (SELECT Sum(ValueA) AS SumValueA
              FROM dbo.TableA) a
           CROSS JOIN (SELECT Sum(ValueB) AS SumValueB
    FROM dbo.TableB)
    

    交叉联接显示子查询A中的所有行和子查询b中的所有行。这就产生了笛卡尔积。