0
我想在MS Access中计算12个月的运行总数。在Oracle SQL中,我将使用窗口函数来实现此功能,如MS Access - 运行12个月的总计
SELECT date, SUM(salesvol) OVER (ORDER BY date ROWS 11 PRECEDING) AS running_tot FROM table1
但显然MS Access不支持窗口功能。我最初的想法是使用datediff函数编写查询,但因为我的日期变量是varchar格式,所以我认为这不是一个切实可行的方法。
我的数据集由两列组成:日期(VARCHAR)和salesvol(NUMBER):
date salesvol
200901 473560
200902 426204
200903 473560
200904 662984
200905 473560
200906 662984
200907 615628
200908 236780
200909 426204
200910 331492
200911 426204
200912 378848
201001 236780
201002 426204
201003 426204
201004 142068
201005 426204
201006 520916
201007 568272
201008 520916
201009 520916
201010 520916
201011 568272
201012 947120
我的期望的输出是这样的:
date salesvol running_tot
200901 473560 473560
200902 426204 899764
200903 473560 1373324
200904 662984 2036308
200905 473560 2509868
200906 662984 3172852
200907 615628 3788480
200908 236780 4025260
200909 426204 4451464
200910 331492 4782956
200911 426204 5209160
200912 378848 5588008
201001 236780 5351228
201002 426204 5351228
201003 426204 5303872
201004 142068 4782956
201005 426204 4735600
201006 520916 4593532
201007 568272 4546176
201008 520916 4830312
201009 520916 4925024
201010 520916 5114448
201011 568272 5256516
201012 947120 5824788
我猜你错过了这是Access。 – Gustav
您可以使用以下表达式将其转换为Date:'CDate(Format(“200910”,“@@@@/@@”))'但实际上你不需要这样做,因为像“200910”等字符串是完美的可分类的_as is_。 – Gustav