2011-04-01 168 views
0

我與Microsoft SQL Server 2008數據庫代替Excel電子表格和需要計算這樣的:10月平均

=AVERAGE(IF((A:A>A4-304)*(A:A<=A4),G:G)) 

其中A列是日期和G列的值。 此字段的標題是:

10個月簡單移動平均

我想我會使用類似:

SELECT RawData.* 
,(SELECT Sum(X.AdjClose) AS SumAdjClose 
    FROM RawData X 
    WHERE DATEDIFF(d,X.RawDate,RawData.RawDate) <= 304 
) AS SumAdjClose 
FROM RawData 

回答

1

在SQL Server中一個選項是使過濾器在WHERE條款和平均在SELECT

select avg(ValueCol) 
from Table1 
where DateCol between @Date-304 and @Date 

另一種選擇,在Excel中相同的邏輯可能是:

select avg(case when DateCol between @Date-304 and @Date then ValueCol else null) 
from Table1 
+0

我不得不「DATEADD(d,-304,@日期)和@date間」使用,但感謝您的指導! – 2011-04-02 16:14:19