Beginnend mit Tabelle;Berechnung der durchschnittlichen Tagesbilanz in SQL
[AccountLedger]
AccountCode PostingDate Amount
128 2014-01-01 08:36:09 200.00
128 2014-01-01 14:18:10 200.00
128 2014-01-01 14:26:56 0.00
128 2014-01-01 18:17:31 400.00
128 2014-01-01 20:18:53 100.00
128 2014-01-02 00:10:35 0.00
128 2014-01-02 01:44:26 300.00
128 2014-01-02 15:49:31 -300.00
128 2014-01-03 00:33:23 400.00
128 2014-01-03 11:55:13 -200.00
128 2014-01-03 11:56:34 -100.00
128 2014-01-03 14:58:42 -400.00
128 2014-01-03 17:31:11 0.00
**REQUIRED RESULT**
AccountCode PostingDate daily_balance
128 2014-01-01 900.00
128 2014-01-02 900.00
128 2014-01-03 600.00
Abfrage wird
beigefügtenselect
Acc
, Dte
, sum(daily_amt) over (PARTITION BY Acc ORDER BY Dte DESC) as daily_balance
from (select
[AccountLedger].[AccountCode] as Acc
, convert(date, [AccountLedger].[PostingDate]) as Dte
, sum([AccountLedger].[Amount]) as daily_amt
from [AccountLedger]
WHERE [AccountLedger].[PostingDate] < '2014-04-01'
and [AccountLedger].[AccountCode]=128
group by [AccountLedger].AccountCode
, [AccountLedger].[PostingDate]
) t
order by Acc, dte*
* Aber Fehler erscheint;
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near 'order'.
Msg 102, Level 15, State 1, Line 16
Incorrect syntax near 't'.*
Wie kann ich das gewünschte Ergebnis erhalten?
Was ist, um von acc, dte *? Was ist Tee *? in diesem Fall glaube ich, die Fehlermeldung spricht Bände ... und es ist ziemlich genau. – JonH
Dieser Beitrag zeigt keinen Forschungsaufwand. – dfundako
Dte ist das Buchungsdatum das * Zeichen bei der Formatierung im Texteditor hier arglos angehängt. Das Problem kommt aus over-Klausel; Es funktioniert gut bis "PARTITION BY Acc" und Fehler entsteht aus "ORDER BY DTE DESC" – 3439027