Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
14
Rozdział1:FunkcjeoknawjęzykuSQL
Otowynikwykonaniatejkwerendy:
orderid
custid
val
pctcust
diffcust
pctall
diffall
---
---
-----
---
----
---
----
---
-----
---
---
---
---
---
----
---
---
---
-
10835
1
845i80
19i79
133i633334
0i07
-679i252072
10643
1
814i50
19i06
102i333334
0i06
-710i552072
10952
1
471i20
11i03
-240i966666
0i04
-1053i852072
10692
1
878i00
20i55
165i833334
0i07
-647i052072
11011
1
933i50
21i85
221i333334
0i07
-591i552072
10702
1
330i00
7i72
-382i166666
0i03
-1195i052072
10625
2
479i75
34i20
129i012500
0i04
-1045i302072
10759
2
320i00
22i81
-30i737500
0i03
-1205i052072
10926
2
514i40
36i67
163i662500
0i04
-1010i652072
10308
2
88i80
6i33
-261i937500
0i01
-1436i252072
iii
Jakwidać,kwerendauzyskanaprzypomocytejmetodyjestskomplikowanaiwymaga
zdefiniowaniadodatkowychwyrażeńtabelarycznychorazzłączeń.
Podobneobliczeniamogązostaćprzeprowadzonetakżewinnysposóbprzy
użyciuosobnejkwerendypodrzędnejdlakażdegozobliczeń.Otoalternatywneroz-
wiązaniewykorzystującekwerendypodrzędnedowykonaniazadaniarealizowanego
uprzednioprzezdwiekwerendygrupujące:
--kwerendypodrzędnezdanymiszczegółowymiiagregacjamidlaklienta
SELECTorderid,custid,val,
CAST(100i*val/
(SELECTSUM(O2ival)
FROMSalesiOrderValuesASO2
WHEREO2icustid=O1icustid)ASNUMERIC(5,2))ASpctcust,
val-(SELECTAVG(O2ival)
FROMSalesiOrderValuesASO2
WHEREO2icustid=O1icustid)ASdiffcust
FROMSalesiOrderValuesASO1;
--kwerendypodrzędnezdanymiszczegółowymiorazagregacjamidlaklienta
--icałościowymi
SELECTorderid,custid,val,
CAST(100i*val/
(SELECTSUM(O2ival)
FROMSalesiOrderValuesASO2
WHEREO2icustid=O1icustid)ASNUMERIC(5,2))ASpctcust,
val-(SELECTAVG(O2ival)
FROMSalesiOrderValuesASO2
WHEREO2icustid=O1icustid)ASdiffcust,
CAST(100i*val/
(SELECTSUM(O2ival)
FROMSalesiOrderValuesASO2)ASNUMERIC(5,2))ASpctall,
val-(SELECTAVG(O2ival)
FROMSalesiOrderValuesASO2)ASdiffall
FROMSalesiOrderValuesASO1;