Sql server 两个表的SUM函数产生错误的值
使用:SQL Server 2008 R2 在计算总数的百分比时,我在两个不同的表上运行聚合查询(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
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;它不像你想象的那样!谢谢我没有足够的票数支持你,但如果可以的话,我会的;我没有足够的票数支持你,但如果可以的话,我会的。