Ihre Anfrage wird man die Summe der einzelnen Tagesbetrag, mit dem nächsten Betrag am selben Tag (Ihre Partition und Reihenfolge nach sind auf demselben Feld). Dies ist erlaubt, aber es bedeutet eines von drei Dingen:
- Das TradingDate ist ein Datum, mit mehreren Werten an jedem Datum. Wenn ja, ist die Summe unbestimmt, da Sie nicht wissen, welchem Sie folgen würden.
- TradingDate ist schlecht benannt, und es ist wirklich eine Datumsangabe. In diesem Fall erhalten Sie den nächsten Datumswert am selben Tag.
- Ihre Abfrage ist falsch und Sie meinen nicht "Partition von TradingDate Auftrag von TradingDate".
Ich würde spekulieren, dass Sie eines von zwei Dingen wollen. Der erste wäre die Summe des Tagesbudgets mit dem nächsten Tag. Der andere wäre eine kumulative Summe.
Es gibt die Möglichkeit, dass Sie mehrere Zeilen pro Tag haben und die Summe des Budgets an diesem Tag möchten. Wenn das der Fall ist, dann können Sie die einfachere Formulierung verwenden:
select TradingDate, Budget,
sum(Budget) over (PARTITION BY TradingDate) AS BudgetMTD
from #4
, dass 2012 Syntax ist. Sie verwenden wahrscheinlich eine frühere Version. (Obwohl Sie auch ein unübertroffenes ', 1)' haben. –
Ja ich benutze 2008, danke wird untersucht – Wilest
Für 2008 siehe http://stackoverflow.com/questions/860966/calculate-a-running-total-in-sqlserver –