verwendetes Datenbanksystem: MSSQL
Hallo,
ich würde gerne folgendes selektieren.
Und zwar habe ich eine Tabelle, wo zum Beispiel 100 Datensätze vorhanden sind.
Tabelle:
Jetzt würde ich gerne immer 10 Datensätze Gruppieren um eine Summe über die Spalte Wert zu bilden.
Geht sowas, wie:
SELECT SUM(Wert) FROM Tabelle ORDER BY Datum GROUP BY (immer 10 Datensätze)
Hi,
lt. Doku
geht das mit TOP(n), also
SELECT TOP(10) SUM(Wert) FROM Tabelle ORDER BY Datum GROUP BY...
Ist ziemlich unterschiedlich von andern DBMS
SQL - Select first 10 rows only?
Gruß
f_igy
Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 3.1.
ich behaupte mal mein Vorredner hat die aufgabe falsch verstanden:
du nimmst die ersten zehn Datensätze, überspringst zehn, nimmst die nächsten zehn, überspringst 20, u.s.w.
dafür brauchst du zum einen Top(10) (gibts in mssql von haus aus) und zum anderen ein Skip(x+10) (gibts nicht von haus aus in mssql, aber in Linq)
der Code für den Skip würde dann so aussehen:
WITH OrderedOrders AS
(
SELECT SalesOrderID, OrderDate,
ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
FROM Sales.SalesOrderHeader
)
SELECT *
FROM OrderedOrders
WHERE RowNumber BETWEEN 51 AND 60; --BETWEEN is inclusive
Quelle: How do I write LINQ's .Skip(1000).Take(100) in pure SQL?
MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden!
*"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht."
*"Ignorance simplifies ANY problem."
*"Stoppt die Piraterie der Musikindustrie"