declare @t table (cid int, amount int, cname varchar)
insert into @t
values (6, 20, 'C'), (7, 30, 'C'), (8, 10, 'C'), (9, 10, 'D')
select
sum(amount) over (partition by cname order by cid),
*
from @t
Wirft einen Fehler gibt:SQL Server 2012: Summe über, um durch Fehler falsche Syntax in der Nähe 'bestellen'
Incorrect syntax near 'order'.
https://msdn.microsoft.com/en-us/library/ms187810.aspx
nicht über Auftragssumme von in SQL Server 2012 unterstützt ? Wenn ich die Reihenfolge lösche und nur die Partition benutze, funktioniert es, aber für 'C' bekomme ich 60 für alle Zeilen. Ich möchte total laufen.
Weitere Informationen:
- Microsoft SQL Server Management Studio 11.0.2100.60
- Microsoft Analysis Services Client Tools 11.0.2100.60
- Microsoft Data Access Components (MDAC) 6.1.7601.17514
Datenbankoption -> Kompatibilitätsgrad zeigt nur 2000, 2005 und 2008, mit 2008 ausgewählt.
Versuch
ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = 110
Wirft einen Fehler auszuführen:
Valid values of the database compatibility level are 80, 90, or 100.
Hmmm, sind Sie SSMS 2012 mit einer früheren Version der Engine-Datenbank? –
@GordonLinoff Ja, ich denke, du hast Recht. 'Select @@ version' gab mir' Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) \t 2. April 2010 15.48.46 \t Copyright (c) Microsoft Corporation \t Standard Edition (64-bit) unter Windows NT 6.1 (Build 7601: Service Pack 1) '. Nicht sicher, wie das überhaupt möglich ist. –
curious
SSMS ist eine Schnittstelle; Es kann mit mehreren Versionen der Datenbank kommunizieren. –