2017-02-05 6 views
-4
DECLARE @Sample TABLE(@x float, @y float) 

SET @x = SELECT [Return] x 
     FROM [return] 
     WHERE YM BETWEEN 8801 AND 8901 
      AND Radif = 2 

SET @y = SELECT [Return] y 
     FROM [return] 
     WHERE YM BETWEEN 8801 AND 8901 
      AND Radif = 2 

;WITH cteSource(x, xAvg, y, yAvg, n) AS 
(
    SELECT 
     1E * x, 
     AVG(1E * x) OVER (PARTITION BY (SELECT NULL)), 
     1E * y, 
     AVG(1E * y) OVER (PARTITION BY (SELECT NULL)), 
     COUNT(*) OVER (PARTITION BY (SELECT NULL)) 
    FROM  
     @Sample 
) 
SELECT 
    SUM((x - xAvg) *(y - yAvg))/MAX(n) AS [COVAR(x,y)] 
FROM 
    cteSource 
+0

どのようなエラーがありますか?あなたは何を達成しようとしていますか? – EJoshuaS

答えて

2

おそらく複数のエラーがあります。しかし、どのような感覚をしていない最初の3行で始まる:私は推測することができます

DECLARE @Sample table(@x float , @y float) 
     set @x = SELECT [Return]x FROM [return] where YM between 8801 and 8901 and Radif=2 
     set @y = SELECT [Return]y FROM [return] where YM between 8801 and 8901 and Radif=2; 

最も近い、あなたはこのような何かしたい:。

DECLARE @Sample table(x float, y float); 
INSERT INTO @Sample(x, y) 
    SELECT x, y 
    FROM [return] 
    WHERE YM between 8801 and 8901 and Radif = 2; 

(これはあなたが望むものではないかもしれないが、それだけです)

最初の3行には非常に多くのエラーがあり、T-SQLのコーディングとSQL構文をブラッシュアップすることをお勧めします。

関連する問題