Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Letzter Datensatz ermitteln auf Basis von 3 Feldern

  Alt 21. Jun 2021, 16:13
Das mit OVER klingt interessant aber auch kompliziert.

Zitat:
Mir würde schon helfen, wie das SQL Select Statement aussehen muss, um bei den Daten nur den 3. Datensatz zu bekommen.
Um zu bekommen, benötige ich da auch OVER?
Ja, das OVER ist auf jeden Fall erforderlich, da es die Fensterfunktion definiert. Je nach Anwendungsfall ist das PARTITION BY oder das ORDER BY nicht erforderlich, das ergibt sich aus dem Syntaxdiagramm und in den Beispielen auf der verlinkten Seite - hier sieht man eins ohne PARTITION BY

Code:
SELECT BusinessEntityID, TerritoryID  
   ,DATEPART(yy,ModifiedDate) AS SalesYear
   ,CONVERT(VARCHAR(20),SalesYTD,1) AS SalesYTD
   ,CONVERT(VARCHAR(20),AVG(SalesYTD) OVER (ORDER BY DATEPART(yy,ModifiedDate)  
                                            ),1) AS MovingAvg
   ,CONVERT(VARCHAR(20),SUM(SalesYTD) OVER (ORDER BY DATEPART(yy,ModifiedDate)  
                                            ),1) AS CumulativeTotal
FROM Sales.SalesPerson
WHERE TerritoryID IS NULL OR TerritoryID < 5 
ORDER BY SalesYear;
Michael Justin

Geändert von mjustin (21. Jun 2021 um 16:22 Uhr)
  Mit Zitat antworten Zitat