【问题标题】:How can I add a running total of one column to an Access query?如何将一列的运行总计添加到 Access 查询?
【发布时间】:2014-06-19 18:47:02
【问题描述】:

我有一个查询,在一个字段中包含过去 12 个月内与特定产品相对应的总销售额百分比。例如:

产品 1 - 38%
产品 2 - 25%
产品 3 - 16%
(...)

记录按百分比列按降序排序,总和必须为 100%。我想创建一个新列,将以前的百分比添加为运行总计,如下所示:

产品 1 - 38% - 38%
产品 2 - 25% - 63%
产品 3 - 16% - 79%
(...直到它到达最后一个产品和 100% 小计)

我该怎么做?

【问题讨论】:

  • 商品是否有ID字段?他们真的叫Product1, Product2..?
  • 不,它们有不同的名称。这只是一个例子。
  • 有可以使用的ID字段吗?

标签: sql ms-access vba ms-access-2007


【解决方案1】:

如果您有 ID 字段或日期字段,则可以使用此相关子查询的变体。

SELECT t.*,
     t.productpct+[prev_value] AS RunningSum,

 (select sum([ProductPct])            
 from test AS t2                   
  WHERE             
  t2.ID < t.ID  
 ) AS Prev_Value

FROM test AS t;

有些人在 SQL 方面比我好得多,但是如果这有助于或给你答案,那就太好了。

【讨论】:

  • 谢谢。既然你这么说,我想我可以使用销售额作为 ID,因为它将按后代顺序排列。无论如何,我可以使用每个百分比作为 ID 字段,因为它是按后代顺序排列的吗? t、test 和 T2 是什么意思?谢谢。
  • test 是您的表的名称。 t 和 t2 是表别名。所以你的表名将替换test,其他一切都可以保持不变。百分比可以准确地识别每一行,但并不总是保证百分比会不同,是吗?
  • 如果数据不在表中而是在查询中会发生什么? prev_value 和 ProductPct 也应该保持不变?
  • prev_value 可以保持不变,ProductPct 是百分比的字段名称。你必须玩弄它。它可以工作。我不知道,我看不到查询。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 2010-10-23
  • 2011-02-01
相关资源
最近更新 更多