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