簡體   English   中英

MS Access 2010在查詢中的運行總計

[英]MS Access 2010 Running Total in Query

我不是Access的忠實擁護者,但是對於這個項目,我被要求創建一個Access數據庫。 我為其他數據庫類型創建了類似的東西,所以並不太困難。 我大部分都想通了,但總的運行量讓我大吃一驚。

我有下表:表名attendanceView

查詢: SELECT * FROM attendanceView

======================================================================================
agentID    |     incurrredDate     |   points    |    OneFallOff     |    TwoFallOff
======================================================================================
chtall     |       10/7/2013       |     2       |       2           |        2
chtall     |       10/15/2013      |     2       |       2           |        2
chtall     |       11/26/2013      |     2       |       2           |        2
chtall     |       12/17/2013      |     2       |       2           |        2
vimunson   |       7/22/2013       |     2       |       2           |        2
vimunson   |       7/29/2013       |     2       |       1           |        1
vimunson   |       12/6/2013       |     1       |       1           |        1

該查詢執行查找OneFallOffTwoFallOff的值所需OneFallOff TwoFallOff 不過,我需要找到一種方式來運行的運行總計TwoFallOff每個agentID 例如chtall有四個記錄,如下所示:

==================================================================================================
agentID    |     incurrredDate     |   points    |    OneFallOff     |    TwoFallOff     |   total
==================================================================================================
chtall     |       10/7/2013       |     2       |       2           |        2         |    2
chtall     |       10/15/2013      |     2       |       2           |        2         |    4
chtall     |       11/26/2013      |     2       |       2           |        2         |    6
chtall     |       12/17/2013      |     2       |       2           |        2         |    8
vimunson   |       7/22/2013       |     2       |       2           |        2         |    2
vimunson   |       7/29/2013       |     2       |       1           |        1         |    3
vimunson   |       12/6/2013       |     1       |       1           |        1         |    4

我嘗試了DSUM()無效,或者我使用的錯誤。 如果表格中的內容不明確,則在代理更改時, total列將重置為0。

您可以通過相關子查詢獲得所需的內容。

SELECT
    a1.agentID,
    a1.incurrredDate,
    a1.points,
    a1.OneFallOff,
    a1.TwoFallOff
    (
        SELECT Sum(a2.TwoFallOff)
        FROM attendanceView AS a2
        WHERE
                a2.agentID = a1.agentID
            AND a2.incurrredDate <= a1.incurrredDate
    ) AS total
FROM attendanceView AS a1;

您也可以使用DSum ,但是隨后需要在DSum WhereCondition選項中使用帶agentIDincurrredDate分隔符。 與子查詢方法相比,這似乎需要更多的精力,而且我發現它更容易出錯。

SELECT
    a.agentID,
    a.incurrredDate,
    a.points,
    a.OneFallOff,
    a.TwoFallOff,
    DSum
        (
            "TwoFallOff", "attendanceView",
            "agentID = '" & a.agentID & "' " &
            "AND incurrredDate <= " & 
            Format(a.incurrredDate, "\#yyyy-m-d\#")
        ) AS total
FROM attendanceView AS a;

這兩個查詢都使用Access 2007中的示例數據返回請求的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM