私はポストへのフォローアップの質問を先にお願いしています。 (SQL: Overflow error for type INT)。私が今問題を抱えているのは、@ SUMX2Yと@ SUMX2X2の結果をFLOATに変換することです。私は複数の異なる方法を試して、まだ問題がある。誰も私がここで間違っていることのアイデアを持っていますか?私は自分のコンバージョンの試みは含めませんでしたが、CASTとCONVERTをそれぞれの方程式のレベルまで含めました。SQL分割時のINT結果の丸め
CREATE TABLE #Set1
(
X BIGINT,
Y BIGINT
)
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 @SUMXY BIGINT
DECLARE @SUMXX2 BIGINT
DECLARE @SUMX2Y BIGINT
DECLARE @SUMX2Y_ BIGINT
DECLARE @SUMX2X2 BIGINT
DECLARE @N INT
SET @N = (SELECT COUNT(*) FROM #Set1)
SET @SUMY = (SELECT SUM(Y) FROM #Set1)
SET @SUMX2 = (SELECT SUM(POWER(X,2)) FROM #Set1)
SET @SUMX4 = (SELECT SUM(POWER(X,4)) FROM #Set1)
SET @SUMX2Y_ = (SELECT SUM(POWER(X,2)*Y) FROM #Set1)
SET @SUMX2Y = @SUMX2Y_ - (@SUMX2*@SUMY)/(@N)
SET @SUMX2X2 = @SUMX4 - (POWER(@SUMX2,2)/@N)
PRINT @SUMX2Y
PRINT @SUMX2X2