Tellimuste arv aasta ja kuude lõikes - ROLLUP, CUBE

In [68]:
SELECT  ISNULL(CAST(Year(Orderdate) as Varchar), 'Kokku') as Aasta, 
        IsNULL(CAST(MONTH(OrderDate) as varchar), 'Kokku') as Kuu, COUNT(OrderID) as TellimusteArv
FROM Orders
GROUP BY Year(Orderdate) , MONTH(OrderDate) WITH ROllUP
(27 rows affected)
Total execution time: 00:00:00.012
Out[68]:
AastaKuuTellimusteArv
1996722
1996825
1996923
19961026
19961125
19961231
1996Kokku152
1997133
1997229
1997330
1997431
1997532
1997630
1997733
1997833
1997937
19971038
19971134
19971248
1997Kokku408
1998155
1998254
1998373
1998474
1998514
1998Kokku270
KokkuKokku830
In [15]:
--Tellimuste arv aasta lõikes
SELECT 'Tellimuste Arv' as 'Years', [1996],[1997],[1998] -- tabeli päis
FROM (SELECT OrderID, year(Orderdate) as OrderYears
        FROM Orders) as Andmed --Andmed Pivot koostamiseks
PIVOT
    (COUNT(OrderID) for OrderYears IN ([1996],[1997],[1998])) as Tabel --PIVOT funktsioon
(1 row affected)
Total execution time: 00:00:00.026
Out[15]:
Years199619971998
Tellimuste Arv152408270
In [38]:
--Klientide arv
SELECT OrderMonths as 'Kuu' ,[1996],[1997], [1998]-- tabeli päis
FROM (SELECT CustomerID, year(OrderDate) as OrderYears, month(orderdate) as OrderMonths
        FROM Orders) as Andmed -- andmed Pivot koostamiseks
PIVOT
    (COUNT(CustomerID) for OrderYears IN ([1996],[1997], [1998])) as Tabel
(12 rows affected)
Total execution time: 00:00:00.013
Out[38]:
Kuu199619971998
103355
202954
303073
403174
503214
60300
722330
825330
923370
1026380
1125340
1231480
In [49]:
--Tellimuste arv ShipCountries ja aasta lõikes
SELECT Riik ,[1996],[1997], [1998]-- tabeli päis
FROM (SELECT Shipcountry as Riik ,Orderid, year(OrderDate) as OrderYears
        FROM Orders
        ) as Andmed -- andmed Pivot koostamiseks
PIVOT
    (COUNT(OrderID) for OrderYears IN ([1996],[1997], [1998])) as Tabel
(21 rows affected)
Total execution time: 00:00:00.011
Out[49]:
Riik199619971998
Finland4135
USA236039
Italy31510
Brazil134228
Germany246434
Switzerland387
Mexico9127
Sweden61714
Argentina0610
Austria82111
UK103016
Poland124
Canada4179
Ireland5104
Norway123
France153923
Belgium2710
Spain6512
Venezuela82018
Denmark3114
Portugal472
In [57]:
--Klientide arv aasta lõikes
SELECT LastName,FirstName,Empl ,[1996],[1997], [1998]-- tabeli päis
FROM (SELECT E.EmployeeID as Empl,LastName,FirstName ,Orderid, year(OrderDate) as OrderYears
        FROM Orders Inner JOIn Employees E ON E.EmployeeID =Orders.EmployeeID
        ) as Andmed -- andmed Pivot koostamiseks
PIVOT
    (COUNT(OrderID) for OrderYears IN ([1996],[1997], [1998])) as Tabel
(9 rows affected)
Total execution time: 00:00:00.016
Out[57]:
LastNameFirstNameEmpl199619971998
DodsworthAnne951919
LeverlingJanet3187138
SuyamaMichael6153319
KingRobert7113625
DavolioNancy1265542
PeacockMargaret4318144
BuchananSteven5111813
FullerAndrew2164139
CallahanLaura8195431
In [65]:
--Klientide arv aasta ja kuu lõikes - PIVOT
SELECT LastName,FirstName,Empl ,OrderYears, [1] 'Jaan',[2]'Veebr',[3]'Marts',[4]'Aprill',[5]'Mai',[6]'Juuni',[7]'Juuli', [8] 'August',[9] as 'September',[10] as 'Oktoober',[11] 'November',[12] 'Detsember'-- tabeli päis
FROM (SELECT E.EmployeeID as Empl,LastName,FirstName ,Orderid, year(OrderDate) as OrderYears, MONTH(OrderDate) as Kuud
        FROM Orders  JOIn Employees E ON E.EmployeeID =Orders.EmployeeID
        ) as Andmed -- andmed Pivot koostamiseks
PIVOT
    (COUNT(OrderID) for Kuud IN ([1],[2],[3],[4],[5],[6],[7], [8] ,[9]  ,[10]  ,[11] ,[12] )) as Tabel
(27 rows affected)
Total execution time: 00:00:00.019
Out[65]:
LastNameFirstNameEmplOrderYearsJaanVeebrMartsAprillMaiJuuniJuuliAugustSeptemberOktooberNovemberDetsember
DavolioNancy11996000000155249
DavolioNancy11997325154738737
DavolioNancy119989911850000000
FullerAndrew21996000000125224
FullerAndrew21997414334317155
FullerAndrew219987391820000000
LeverlingJanet31996000000421344
LeverlingJanet319977935562447811
LeverlingJanet31998106121000000000
PeacockMargaret41996000000753853
PeacockMargaret4199786485561157610
PeacockMargaret41998614121020000000
BuchananSteven51996000000301223
BuchananSteven51997003022132311
BuchananSteven51998462100000000
SuyamaMichael61996000000243033
SuyamaMichael61997222422221455
SuyamaMichael61998347500000000
KingRobert71996000000012530
KingRobert71997312651535113
KingRobert71998464920000000
CallahanLaura81996000000263224
CallahanLaura81997586243653723
CallahanLaura819987210930000000
DodsworthAnne91996000000200201
DodsworthAnne91997101213112133
DodsworthAnne91998546400000000
In [77]:
--Klientide arv aasta ja kuu lõikes - ROLLUP
    select TOP 40 Orders.EmployeeID as Töötaja,  LastName as Surname,Firstname as FirstName,
    ISNULL(CAST(YEAR(OrderDate) as varchar), 'Total') as OrderYears,
    ISNULL(CAST(Month(OrderDate) as Varchar),'Total') AS  OrderMonths,COUNT(OrderID) as OrdersCOUNT
    from Orders JOIN [Northwind].[dbo].[Employees] ON Orders.EmployeeID = [Northwind].[dbo].[Employees].EmployeeID
    GROUP BY Orders.EmployeeID,  LastName ,Firstname, YEAR(OrderDate),  Month(OrderDate) WITH ROLLUP
(40 rows affected)
Total execution time: 00:00:00.019
Out[77]:
TöötajaSurnameFirstNameOrderYearsOrderMonthsOrdersCOUNT
1DavolioNancy199671
1DavolioNancy199685
1DavolioNancy199695
1DavolioNancy1996102
1DavolioNancy1996114
1DavolioNancy1996129
1DavolioNancy1996Total26
1DavolioNancy199713
1DavolioNancy199722
1DavolioNancy199735
1DavolioNancy199741
1DavolioNancy199755
1DavolioNancy199764
1DavolioNancy199777
1DavolioNancy199783
1DavolioNancy199798
1DavolioNancy1997107
1DavolioNancy1997113
1DavolioNancy1997127
1DavolioNancy1997Total55
1DavolioNancy199819
1DavolioNancy199829
1DavolioNancy1998311
1DavolioNancy199848
1DavolioNancy199855
1DavolioNancy1998Total42
1DavolioNancyTotalTotal123
1DavolioNULLTotalTotal123
1NULLNULLTotalTotal123
2FullerAndrew199671
2FullerAndrew199682
2FullerAndrew199695
2FullerAndrew1996102
2FullerAndrew1996112
2FullerAndrew1996124
2FullerAndrew1996Total16
2FullerAndrew199714
2FullerAndrew199721
2FullerAndrew199734
2FullerAndrew199743
In [34]:
--Tellimuste arv aasta lõikes - PIVOT
SELECT OrderYears as 'Aasta',[1] 'Jaan',[2]'Veebr',[3]'Marts',[4]'Aprill',[5]'Mai',[6]'Juuni',[7]'Juuli', [8] 'August',[9] as 'September',[10] as 'Oktoober',[11] 'November',[12] 'Detsember'
FROM (SELECT OrderID, year(Orderdate) as OrderYears, month(orderdate) as OrderMonths
        FROM Orders ) as Andmed
PIVOT
    (COUNT(OrderID) for OrderMonths IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])) as Tabel
(3 rows affected)
Total execution time: 00:00:00.052
Out[34]:
AastaJaanVeebrMartsAprillMaiJuuniJuuliAugustSeptemberOktooberNovemberDetsember
199855547374140000000
1996000000222523262531
1997332930313230333337383448