6

このコードのバグを理解できません。

コード:

SELECT
    CariID, HesapID, BTrh, BCinsiID, BNo, Acklm, VdTrh, mTrh, BorcT, AlacakT, 
    SUM(BorcT) OVER (PARTITION BY CariID, HesapID ORDER BY BTrh, BNo, mTrh) AS TopBorcT, 
    SUM(AlacakT) OVER (PARTITION BY CariID, HesapID ORDER BY BTrh, BNo, mTrh ) AS TopAlacakT
FROM
    tCariH

エラー:

メッセージ102、レベル15、状態1、行3

'order'の近くの構文が正しくありません。

4

3 に答える 3

2

のような集計関数ではSUM句で使用ませんORDER BYOVER。関数を使用するだけで済みPARTITIONます。はORDERランキング関数に使用されます。

OVER 句で使用されるランキング、集計、または分析関数によっては、<ORDER BY clause>サポートされ<ROWS and RANGE clause>ない場合があります。

ORDER両方の集計でを削除するように変更するだけで問題ありません。

于 2012-04-05T12:40:52.517 に答える
0
ID      AccountID       Quantity
1          1               10           Sum = 10
2          1               5                = 10 + 5 = 15
3          1               2                = 10 + 5 + 2 = 17
4          2               7                = 7
5          2               3                = 7 + 3 = 10  

SELECT ID, AccountID, Quantity, 
       SUM(Quantity) OVER (PARTITION BY AccountID ) AS TopBorcT, 
FROM tCariH
于 2012-04-06T05:22:43.517 に答える