2013-05-02 32 views
2

我被困在試圖獲取運行總和以在Access查詢中工作。 我一直在玩各種Dsum表達式,但它們都導致了錯誤。 基本上,我有兩個欄目,一個是一年,一個是當年的零件數目,我希望第三個是多年來零件數量的總和。在Access查詢中製作運行總和的問題

我對前兩列SQL是這樣的:

SELECT DatePart("yyyy",[EoL]) AS AYear, Count(EquipmentQuery.Equipment) AS EquipCount 
    FROM EquipmentQuery 
    GROUP BY DatePart("yyyy",[EoL]) 
    ORDER BY DatePart("yyyy",[EoL]); 

如何獲得第三列作爲一個運行總和工作有什麼建議? 感謝您的幫助!

回答

1

如果您創建報告,則有一個property to calculate a running sum

如果你喜歡一個查詢時,您可以使用子查詢來計算運行總和:

SELECT DatePart("yyyy",[EoL]) AS AYear 
,  Count(eq1.Equipment) AS EquipCount 
,  (
     SELECT Count(eq2.Equipment) 
     FROM EquipmentQuery eq2 
     WHERE DatePart("yyyy",eq2.[EoL]) <= DatePart("yyyy",eq1.[EoL]) 
     ) AS RunningSuma 
FROM EquipmentQuery AS eq1 
GROUP BY 
     DatePart("yyyy",[EoL]) 
ORDER BY 
     DatePart("yyyy",[EoL]); 
+0

This Works!非常感謝! – user2240870 2013-05-02 21:36:44

0

試試下面的代碼:

SELECT Year([EQ1].[EOL]) AS Yr, 
Sum(IIf(Year([EQ2].[eol])=Year([EQ1].[eol]),1,0)) AS [current], 
Sum(IIf(Year([EQ2].[eol])<=Year([EQ1].[eol]),1,0)) AS [cumulative] 
FROM [equipmentquery] AS EQ1, [equipmentquery] AS [EQ2] 
GROUP BY Year([EQ1].[EOL]); 

ANSD如果你想運行總計而不是計數:

SELECT Year([EQ1].[EOL]) AS Yr, 
Sum(IIf(Year([EQ2].[eol])=Year([EQ1].[eol]),[EQ2].equipment,0)) AS [current], 
Sum(IIf(Year([EQ2].[eol])<=Year([EQ1].[eol]),[EQ2].equipment,0)) AS [cumulative] 
FROM [equipmentquery] AS EQ1, [equipmentquery] AS [EQ2] 
GROUP BY Year([EQ1].[EOL]);