簡體   English   中英

sql運行總計

[英]sql running totals

我有一張桌子,上面列出了要在到期日之前出售的物品和數量。 我正在嘗試計算運行總計列,該列將顯示某個確定的數量將售出的項目。 以下是我嘗試獲取運行總計的嘗試,但未如我所願。

select item, due_date, qty, sum(qty) over (Order by item )
from apsplan 
Where item ='19-3102875'
order by item

我收到錯誤:

消息102,級別15,狀態1,行44'order'附近的語法不正確。

ps我正在使用SQL Server 2012。

這是我從這里收到的替代建議

SELECT
    item,
    due_date,
    qty,
    (SELECT SUM(t2.qty) FROM apsplan t2 WHERE t2.item <= t1.item and item = '196-31020-005') AS rolling_qty
FROM apsplan t1
WHERE
    item = '196-31020-005'
ORDER BY
    item

這是結果-不是運行總數,而是結束

item    due_date    qty rolling_qty
196-31020-005   2017-09-20 00:59:00.000 1.00000000  24.00000000
196-31020-005   2017-10-06 01:00:00.000 1.00000000  24.00000000
196-31020-005   2017-11-06 01:00:00.000 1.00000000  24.00000000
196-31020-005   2017-12-06 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-01-28 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-02-04 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-03-25 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-03-25 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-04-01 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-04-08 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-04-29 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-05-06 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-05-13 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-05-27 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-06-03 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-06-10 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-07-01 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-07-08 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-07-15 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-07-29 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-08-05 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-08-12 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-08-26 01:00:00.000 1.00000000  24.00000000
196-31020-005   2019-09-02 01:00:00.000 1.00000000  24.00000000

這個評論太長了。

即使您使用的是SQL Server 2012,實際的功能也取決於兼容性級別。 您可以使用以下命令查詢兼容性級別:

SELECT name, compatibility_level FROM sys.databases

您必須至少為110, order by sum()使用order by 要更改兼容性,請參閱文檔 如果您有較舊的兼容性(可能需要少於100個),則可能會出現此錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM