2017-09-26 10 views
0

SQL Sever 2014では、パーティションで稼働している合計で列を作成したいが、動作させることができない。これは私が持っているものです。SQL ServerでOVERを使用して実行中のトータルを作成する2014

SELECT 
    a.ArtikelCode 
    ,a.Omschrijving 
    ,o.OrderNr 
    ,o.Datum 
    ,r.ProdItem 
    ,o.Aantal 
    ,(SUM(Aantal) OVER(PARTITION BY r.ProdItem ORDER BY r.ProdItem ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS Telling 
FROM Artikel a 
LEFT JOIN Receprt r ON r.ReqItem = a.ArtikelCode 
LEFT JOIN [Order] o ON o.ArtikelCode = r.ProdItem 
WHERE LEFT(a.ArtikelCode,1) = 'M' 
GROUP BY r.ProdItem, o.ArtikelCode, a.ArtikelCode, o.Datum, o.Aantal, a.Omschrijving, o.OrderNr 
ORDER BY a.ArtikelCode, r.ProdItem, o.datum 

これは私に次のような結果が得られます。 enter image description here

あなたが見ることができるように、コラム「占い」「Aantal」の欄に合計を行います。 ArtikelCode "M01"とProdItem "ART01"は順調です。しかし、記録8にはまだ集計中です。私が望むのは、レコード8で2で始まり、レコード9では3でなければならず、レコード10では列10の合計が10でなければならないということです。

+0

は、あなたは自分の 'PARTITION BY' – JNevill

+0

に' ArtikelCode'を追加する必要があるように私は、レコード10がkwv84 @ 8、ない10 –

+0

されるべきだと思いますね、Use sum(Aantal)over(ArtikelCode、ProdItemによるパーティション)。 – RGS

答えて

0

また、パーティションをArtikelCodeと考えてください。私はあなたがdatumで注文するつもりだと思う。 。 。それがデフォルトで存在するためとrows句は不要です:

SUM(Aantal) OVER (PARTITION BY a.ArtikelCode, r.ProdItem 
        ORDER BY o.datum 
       ) as Telling 
関連する問題