sql - 按日期移动总和 (MS Access SQL)

标签 sql ms-access

我有一个表 A,其中有许多相同 CODNEG日期的条目:

CODNEG  QUATOT  VOLTOT        Date
ABCD11     937  103070  31/01/2011
ABCD11    1976  205504  31/01/2011
ABCD11    1859  193336  31/01/2011
ABCD11    1026  110808  28/02/2011
ABCD11      49    4410  31/07/2011
XYZW11      35    3570  31/01/2011
XYZW11     627   63954  31/01/2011
     .       .       .           .
     .       .       .           .
     .       .       .           .

我正在尝试创建一个包含字段的查询,其中的值是:(SUM of VOLTOT)/(SUM of QUATOT) 对于相同的 过去十二个月的 CODNEG,例如,如果日期是 31/07/2011,我想对从 2010 年 8 月到 7 月的值求和/2011。

  • (1) 日期始终是该月的最后一天
  • (2) 过去十二个月的条目数可以是 0 到 ~250 之间的任意整数

我发现了一些类似的问题,但我无法根据他们的解决方案来解决这个问题,因为特殊性数字(2)使其有所不同。
我想知道是否可以做我想做的事情,如果可以,我该怎么做。任何帮助将不胜感激。

最佳答案

您将使用相关子查询。根据您的日期算术,我认为这将是:

select t.*,
       (select sum(a2.voltot) / sum(a2.quatot)
        from a a2
        where a2.codneg = a.codneg and
              a2.date > dateadd("m", -12, date) and
              a2.date <= date
       ) as ratio
from a;

如果您确实想要完整的月份,可能会更复杂一些,但想法是相同的。

关于sql - 按日期移动总和 (MS Access SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51444774/

相关文章:

Mysql select from inner select with join

sql查询添加列值

SQLCMD '.' 附近的语法不正确

SQL 查询和 MS Access 查询返回不同的数据

ms-access - Microsoft Access 中的 PDF 缩略图和预览

sql - vba建表时如何指定主键

使用 FROM 子句中的子查询进行联接操作中的 SQL 语法错误

sql - 按 Postgresql 分组

java - 如何检索数据库中最后插入的值?

java - 如何将 Java TimeStamp 转换为 ms access Date?