By Falk Krahl
USE [AdventureWorks2008R2]
GO
SELECT
YEAR(QuotaDate) AS Verkaufsjahr
, LAG(sum(SalesQuota)) OVER (ORDER BY YEAR(QuotaDate)) AS Vorjahresumsatz
, sum(SalesQuota) AS Jahresumsatz
, (sum(SalesQuota) - LAG(sum(SalesQuota), 1,0) OVER (ORDER BY YEAR(QuotaDate))) AS Differenz
FROM Sales.SalesPersonQuotaHistory
GROUP BY YEAR(QuotaDate)
GO
Man erhält somit folgendes Ergebnis:
Die LEAD Funktion arbeitet im Gegenzug zur LAG Funktion genau anders herum. Zu einem bestimmten Zeitraum kann ein nachfolgender Zeitraum betrachtet werden. Hierzu werden nachfolgende Zeilen in die Betrachtung mit einbezogen. Folgendes Beispiel soll dies verdeutlichen:
USE [AdventureWorks2008R2]
GO
SELECT
YEAR(QuotaDate) AS Verkaufsjahr
, sum(SalesQuota) AS Jahresumsatz
, LEAD(sum(SalesQuota)) OVER (ORDER BY YEAR(QuotaDate)) AS Folgejahresumsatz
, (sum(SalesQuota) - LAG(sum(SalesQuota), 1,0) OVER (ORDER BY YEAR(QuotaDate))) AS Differenz
FROM Sales.SalesPersonQuotaHistory
GROUP BY YEAR(QuotaDate)
GO
Als Ergebnis bekommt man nun dieses Resultat.
Ich denke, diese neuen Funktionen, sind nicht nur für Controller sehr wertvoll.