Tsql SQL:INT类型的溢出错误
我有下面的SQL代码,我正在尝试创建一个二阶多项式回归公式。在执行此操作时,@SUMX4接收到如下错误: Msg 232,16级,状态3,第18行 int类型的算术溢出错误,值=2342560000.000000 我将所有变量都转换为BIGINT,但仍然得到这个错误。有什么想法吗Tsql SQL:INT类型的溢出错误,tsql,Tsql,我有下面的SQL代码,我正在尝试创建一个二阶多项式回归公式。在执行此操作时,@SUMX4接收到如下错误: Msg 232,16级,状态3,第18行 int类型的算术溢出错误,值=2342560000.000000 我将所有变量都转换为BIGINT,但仍然得到这个错误。有什么想法吗 create table Set1 (X INT, Y INT) INSERT INTO Set1 VALUES (220, 630) ,(350, 940) ,(450, 1140); DECLARE @SUM
create table Set1
(X INT,
Y INT)
INSERT INTO Set1 VALUES
(220, 630)
,(350, 940)
,(450, 1140);
DECLARE @SUMX BIGINT
DECLARE @SUMY BIGINT
DECLARE @SUMX2 BIGINT
DECLARE @SUMY2 BIGINT
DECLARE @SUMX3 BIGINT
DECLARE @SUMX4 BIGINT
DECLARE @SUMXX BIGINT
DECLARE @SUMXY BIGINT
DECLARE @SUMXX2 BIGINT
DECLARE @SUMX2Y BIGINT
DECLARE @SUMX2X2 BIGINT
SET @SUMX = (SELECT SUM(X) FROM SET1)
SET @SUMY = (SELECT SUM(Y) FROM SET1)
SET @SUMX2 = (SELECT SUM(POWER(X,2)) FROM SET1)
SET @SUMY2 = (SELECT SUM(POWER(Y,2)) FROM SET1)
SET @SUMX3 = (SELECT SUM(POWER(X,3)) FROM SET1)
SET @SUMX4 = (SELECT SUM(POWER(X,4)) FROM SET1)
PRINT CONCAT('SUMX: ', @SUMX)
PRINT CONCAT('SUMY: ', @SUMY)
PRINT CONCAT('SUMX2: ', @SUMX2)
PRINT CONCAT('SUMY2: ', @SUMY2)
PRINT CONCAT('SUMX3: ', @SUMX3)
PRINT CONCAT('SUMX4: ', @SUMX4)
PRINT CONCAT('SUMXX: ', @SUMXX)
PRINT CONCAT('SUMXY: ', @SUMXY)
PRINT CONCAT('SUMXX2: ', @SUMXX2)
PRINT CONCAT('SUMX2Y: ', @SUMX2Y)
PRINT CONCAT('SUMX2X2: ', @SUMX2X2)
SUM返回与正在求和的表达式相同的数据类型。尝试按如下方式对bigint进行强制转换:
SET @SUMX = (SELECT SUM(CAST(X AS BIGINT)) FROM SET1)
...
SET @SUMX2 = (SELECT SUM(POWER(CAST(X AS BIGINT),2)) FROM SET1)
...
对于所有的总和,即使它们已经是BIGINT?sum不应该知道我在添加BIGINT并创建一个BIGINT吗?是字段,不是变量。CREATETABLE语句将X和Y定义为INT。你说得对!不知道为什么我没看到!在那之后,我非常专注于一切。谢谢别担心,伙计