MS Access - 滚动总和(4个月)

时间:2018-02-26 07:30:28

标签: access

我一直在建立一个计算“滚动4个月”的销售数据的访问查询。我一直在尝试使用DSUM,但我似乎只能获得特定组的小计或运行总计(而不是移动总计)。我试图说明我在下面尝试做什么。

    Date        Product  Value  Rolling_4_Month_Sum
    January     A        100    100
    February    A        200    300
    March       A        300    600
    April       A        300    900
    May         A        200    1000
    June        A        400    1200
    July        A        500    1400
    August      A        700    1800

是否可以仅运行4行/月的运行总计?

谢谢!

祝你好运, 菲利普

2 个答案:

答案 0 :(得分:1)

SELECT
 a.Date,
 a.Product,
 a.Value,
 SUM(b.value)
FROM
 Table a
 INNER JOIN Table b ON a.Product=b.Product
   AND b.Date <= a.Date
   AND b.Date >= DateAdd("q",1, a.Date)
GROUP BY
  a.Date, a.Product

这在我看来应该有用。

表a是您的“单月”行日期。 表b是自联接以检索最近4个前几个月。这是通过将b.Date >= DateAdd("q",1, a.Date)添加为自加入条件来完成的。

答案 1 :(得分:0)

以下是这些事情如何发挥作用的一个很好的例子。

数据:

OrderDetailID   OrderID ProductID   Price
1   1234    1   $5.00
2   1234    2   ($2.00)
3   1234    3   $4.00
4   1235    1   $5.00
5   1235    3   $4.00
6   1235    5   $12.00
7   1235    2   ($2.00)

SQL:

SELECT OD.OrderDetailID, OD.OrderID, OD.ProductID, OD.Price, (SELECT Sum(Price) FROM tblOrderDetails
   WHERE OrderDetailID <= OD.OrderDetailID) AS RunningSum
FROM tblOrderDetails AS OD;

enter image description here

enter image description here

enter image description here