In [13]:
-- Tellimuste arv aastate ja kuude lõikes, Võrlus
WITH TABEL AS ( 
SELECT Year(OrderDate) as Aasta, Month(OrderDate) as Kuu, COUNT(*) TellimusteArv 
FROM Orders
GROUP BY Year(OrderDate), Month(OrderDate))
SELECT *,
-- -LAG(TellimusteArv,1,0) OVER (ORDER BY Aasta,kuu)+TellimusteArv as Vahe,
    CASE SIGN(-LAG(TellimusteArv,1,0) OVER (ORDER BY Aasta,kuu)+TellimusteArv) 
        WHEN -1 THEN '-'
        WHEN 1 THEN '+'
        WHEN 0 THen ''
    END as Vahe
FROM Tabel
(23 rows affected)
Total execution time: 00:00:00.014
Out[13]:
AastaKuuTellimusteArvVahe
1996722+
1996825+
1996923-
19961026+
19961125-
19961231+
1997133+
1997229-
1997330+
1997431+
1997532+
1997630-
1997733+
1997833
1997937+
19971038+
19971134-
19971248+
1998155+
1998254-
1998373+
1998474+
1998514-
In [19]:
WITH TABEL AS ( 
SELECT Year(OrderDate) as Aasta, COUNT(*) TellimusteArv 
FROM Orders
GROUP BY Year(OrderDate))
SELECT *,
LEAD(TellimusteArv,1,0) OVER (ORDER BY Aasta),
LEAD(TellimusteArv,1,0) OVER (ORDER BY Aasta)-TellimusteArv as Vahe,
    CASE SIGN(LEAD(TellimusteArv,1,0) OVER (ORDER BY Aasta)-TellimusteArv) 
        WHEN -1 THEN '-'
        WHEN 1 THEN '+'
        WHEN 0 THen ''
    END as Vahe2
FROM Tabel
(3 rows affected)
Total execution time: 00:00:00.015
Out[19]:
AastaTellimusteArv(No column name)VaheVahe2
1996152408256+
1997408270-138-
19982700-270-
In [35]:
--Tellimuste summad
WITH Tabel AS ( 
SELECT  O.OrderID, ORDERDate,  YEAR(OrderDate) AS Aasta, MONTH(OrderDate) as Kuu,CustomerID,
    SUM(UnitPrice*Quantity*(1-Discount) ) as Summa
FROM Orders AS O INNER JOIN [Order Details] D ON O.OrderID=D.OrderID
GROUP BY  O.OrderID, ORDERDate, YEAR(OrderDate), MONTH(OrderDate) ,CustomerID
)
SELECT Aasta, ROUND(SUM(Summa),2) as Summa,
       CASE SIGN(-LAG(ROUND(SUM(Summa),2),1,0) OVER (ORDER BY Aasta) + ROUND(SUM(Summa),2))
        WHEN 1 THEN '+'
        WHEN -1 THEN '-'
       END
FROM Tabel 
GROUP BY aasta
(3 rows affected)
Total execution time: 00:00:00.020
Out[35]:
AastaSumma(No column name)
1996208083,97+
1997617085,2+
1998440623,87-