2

Access クエリで実行中の合計を取得しようとしています。さまざまな Dsum 式をいじってみましたが、すべてエラーになりました。基本的に、2 つの列があり、1 つは年、もう 1 つはその年の部品数、そして 3 つ目は年間の部品数の累計になりたいと考えています。

最初の 2 列の SQL は次のようになります。

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

3 番目の列を実行中の合計として機能させる方法について何か提案はありますか? 助けてくれてありがとう!

4

2 に答える 2

2

レポートを作成すると、累計を計算するプロパティがあります。

クエリを使用する場合は、サブクエリを使用して実行中の合計を計算できます。

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]);
于 2013-05-02T21:25:29.170 に答える
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]);
于 2013-05-03T14:07:06.927 に答える