Sql server 两个表的SUM函数产生错误的值

Sql server 两个表的SUM函数产生错误的值,sql-server,tsql,sql-server-2008-r2,Sql Server,Tsql,Sql Server 2008 R2,使用:SQL Server 2008 R2 在计算总数的百分比时,我在两个不同的表上运行聚合查询(SUM)时遇到了问题。单独地,它产生正确的数量;当查询同时包含这两者时,它会产生一个巨大的值,我无法确定它的来源。代码,加上我正在运行以生成第二个表的代码 SELECT TOP 100 Field INTO TableTwo FROM TableOne SELECT SUM(t1.Field), SUM(t2.Field) FROM TableOne t1, TableTwo t2 TableT

使用:SQL Server 2008 R2

在计算总数的百分比时,我在两个不同的表上运行聚合查询(SUM)时遇到了问题。单独地,它产生正确的数量;当查询同时包含这两者时,它会产生一个巨大的值,我无法确定它的来源。代码,加上我正在运行以生成第二个表的代码

SELECT TOP 100 Field
INTO TableTwo
FROM TableOne

SELECT SUM(t1.Field), SUM(t2.Field)
FROM TableOne t1, TableTwo t2
TableTwo
是从
TableOne
的百分之十中派生出来的(您可以在上述查询的第一部分中看到)。请注意,这些单独生成正确的值:

SELECT SUM(t1.Field)
FROM TableOne t1

SELECT SUM(t2.Field)
FROM TableTwo t2
SQL Server是否支持上面的聚合查询,或者我是否遗漏了一些明显的内容

FROM TableOne t1, TableTwo t2
是交叉连接。t1中的每一条记录都将与t2中的每一条记录合并,从而使您预期的记录增加10倍(如果t1拥有t2记录的10%)


是交叉连接。t1中的每一条记录都将与t2中的每一条记录合并,从而使您预期的记录增加10倍(如果t1有10%的t2记录)。

从表一t1到表二t2
是一个;表1和表2行的每一个组合都会得到一行,这就是为什么您的总和如此之高

您需要单独执行这些查询。如果希望它们位于同一结果集中,可以使用子查询:

select (
   SELECT SUM(t1.Field)
   FROM TableOne t1
) [t1sum], 
(
   SELECT SUM(t2.Field)
   FROM TableTwo t2
) [t2sum]

来自表一t1,表二t2
为a;表1和表2行的每一个组合都会得到一行,这就是为什么您的总和如此之高

您需要单独执行这些查询。如果希望它们位于同一结果集中,可以使用子查询:

select (
   SELECT SUM(t1.Field)
   FROM TableOne t1
) [t1sum], 
(
   SELECT SUM(t2.Field)
   FROM TableTwo t2
) [t2sum]

来自表一t1,表二t2
为a;它不像你想象的那样<代码>来自表一t1,表二t2为a;它不像你想象的那样!谢谢我没有足够的票数支持你,但如果可以的话,我会的;我没有足够的票数支持你,但如果可以的话,我会的。